[PATCH 01/10] omap: Use separate init_irq functions to avoid cpu_is_omap tests early

Tony Lindgren tony at atomide.com
Mon Jun 20 06:14:25 EDT 2011


* Russell King - ARM Linux <linux at arm.linux.org.uk> [110620 02:50]:
> On Mon, Jun 20, 2011 at 02:23:28AM -0700, Tony Lindgren wrote:
> >  void __init gic_init_irq(void)
> >  {
> > -	void __iomem *gic_cpu_base;
> > -
> >  	/* Static mapping, never released */
> >  	gic_dist_base_addr = ioremap(OMAP44XX_GIC_DIST_BASE, SZ_4K);
> >  	BUG_ON(!gic_dist_base_addr);
> >  
> >  	/* Static mapping, never released */
> > -	gic_cpu_base = ioremap(OMAP44XX_GIC_CPU_BASE, SZ_512);
> > -	BUG_ON(!gic_cpu_base);
> > +	omap_irq_base = ioremap(OMAP44XX_GIC_CPU_BASE, SZ_512);
> > +	BUG_ON(!omap_irq_base);
> >  
> > -	gic_init(0, 29, gic_dist_base_addr, gic_cpu_base);
> > +	gic_init(0, 29, gic_dist_base_addr, omap_irq_base);
> 
> Why do you change this?  Nothing should be using 'omap_irq_base' directly
> because it doesn't know what type of interrupt controller you have.

We need to set omap_irq_base for entry-macro.S for the MULTI_OMAP2 case.
So no need to have separate gic_cpu_base for gic_init_irq.
 
> The GIC IRQ entry code should be using gic_cpu_base_addr provided by the
> common gic driver rather than anything else.

You mean for get_irqnr_and_base? That is the case when we don't
have omap2 or 3 compiled in with omap4. For the multi-omap case
we are using omap_irq_base for get_irqnr_and_base as we need to
handle two different kind of irq controllers.

Regards,

Tony



More information about the linux-arm-kernel mailing list