[PATCHv12 0/9] OMAP3+: PRCM chain handler

Bedia, Vaibhav vaibhav.bedia at ti.com
Wed Jan 11 08:49:01 EST 2012


On Tue, Jan 10, 2012 at 20:43:33, Hilman, Kevin wrote:
> "Bedia, Vaibhav" <vaibhav.bedia at ti.com> writes:
> 
> > Hi Kevin,
> >
> > On Tue, Jan 10, 2012 at 06:49:52, Hilman, Kevin wrote:
> > [...]
> >> >
> >> > 1. IO and wakeup events are not supported on AM33XX. Since cpu_is_34xx()
> >> > holds true for AM33XX I ended up adding a !cpu_is_am33xx() check in 
> >> > omap3xxx_prcm_init() to bypass the chain handler registration.
> >> 
> >> > Without such a check we were seeing a crash in USB since USB_CLKCTRL on 
> >> > AM33XX just happens to be at the IRQENABLE_MPU_OFFSET of OMAP3.
> >> > Hope such cpu_is_*() checks are acceptable.
> >> 
> >> We try to avoid them, especially when we already have existing feature
> >> flag for IO wakeups.
> >> 
> >> Does something like (completely untested) patch below work for you?
> >> 
> >> Of course, that implies that that feature flag is initialized correctly
> >> for AM33xx.
> >> 
> >> Kevin
> >> 
> >> 
> >> 
> >> diff --git a/arch/arm/mach-omap2/prm2xxx_3xxx.c b/arch/arm/mach-omap2/prm2xxx_3xxx.c
> >> index c1c4d86..87451d9 100644
> >> --- a/arch/arm/mach-omap2/prm2xxx_3xxx.c
> >> +++ b/arch/arm/mach-omap2/prm2xxx_3xxx.c
> >> @@ -302,7 +302,7 @@ void omap3xxx_prm_restore_irqen(u32 *saved_mask)
> >>  
> >>  static int __init omap3xxx_prcm_init(void)
> >>  {
> >> -	if (cpu_is_omap34xx())
> >> +	if (cpu_is_omap34xx() && omap3_has_io_wakeup())
> >>  		return omap_prcm_register_chain_handler(&omap3_prcm_irq_setup);
> >>  	return 0;
> >>  }
> >> 
> >
> > I'll try this out once we have feature flag initialized on AM33xx.
> > Can the cpu_is_omap34xx() check be completely dropped in that case?
> > Or is there some other reason for retaining it?
> 
> The reason it is there is because that function is called from an
> initcall.  By default, the kernel builds in support for OMAP2/3/4, so
> that initcall will get called on every SoC.  Since it should only happen
> for OMAP3, the cpu_is_ check is used.
> 

I guess my question was misunderstood. My question was regarding your proposed
patch. If omap3_has_io_wakeup() is sufficient to decide whether or not to
register the chain handler is there still a need for cpu_is_omap34xx()?

Regards,
Vaibhav



More information about the linux-arm-kernel mailing list