pon., 4 lut 2019 o 23:42 David Lechner <da...@lechnology.com> napisaƂ(a):
>
> On 1/31/19 7:39 AM, Bartosz Golaszewski wrote:
> > From: Bartosz Golaszewski <bgolaszew...@baylibre.com>
> >
> > We need to create an irq domain if we want to select SPARSE_IRQ. The
> > cp-intc driver already supports it, but aintc doesn't. Use the helpers
> > provided by the generic irq chip abstraction.
> >
> > Signed-off-by: Bartosz Golaszewski <bgolaszew...@baylibre.com>
> > ---
> >   arch/arm/mach-davinci/irq.c | 38 ++++++++++++++++++++++++++-----------
> >   1 file changed, 27 insertions(+), 11 deletions(-)
> >
> > diff --git a/arch/arm/mach-davinci/irq.c b/arch/arm/mach-davinci/irq.c
> > index e539bc65d4ef..c874ea269411 100644
> > --- a/arch/arm/mach-davinci/irq.c
> > +++ b/arch/arm/mach-davinci/irq.c
> > @@ -23,6 +23,7 @@
> >   #include <linux/interrupt.h>
> >   #include <linux/irq.h>
> >   #include <linux/io.h>
> > +#include <linux/irqdomain.h>
> >
> >   #include <mach/hardware.h>
> >   #include <mach/cputype.h>
> > @@ -43,6 +44,7 @@
> >   #define IRQ_INTPRI7_REG_OFFSET      0x004C
> >
> >   static void __iomem *davinci_intc_base;
> > +static struct irq_domain *davinci_irq_domain;
> >
> >   static inline void davinci_irq_writel(unsigned long value, int offset)
> >   {
> > @@ -55,17 +57,15 @@ static inline unsigned long davinci_irq_readl(int 
> > offset)
> >   }
> >
> >   static __init void
> > -davinci_alloc_gc(void __iomem *base, unsigned int irq_start, unsigned int 
> > num)
> > +davinci_irq_setup_gc(void __iomem *base,
> > +                  unsigned int irq_start, unsigned int num)
> >   {
> >       struct irq_chip_generic *gc;
> >       struct irq_chip_type *ct;
> >
> > -     gc = irq_alloc_generic_chip("AINTC", 1, irq_start, base, 
> > handle_edge_irq);
> > -     if (!gc) {
> > -             pr_err("%s: irq_alloc_generic_chip for IRQ %u failed\n",
> > -                    __func__, irq_start);
> > -             return;
> > -     }
> > +     gc = irq_get_domain_generic_chip(davinci_irq_domain, irq_start);
>
> check for (gc == NULL) here?
>

I can add it, but it's not really needed. We know we pass correct
parameters to this routine and if it fails, the system won't boot
anyway.

Bart

Reply via email to