[PATCH v10 18/18] OMAP2, 3: DSS2: Get DSS IRQ from platform device
From: Semwal, Sumit <hidden>
Date: 2011-01-27 15:23:38
Also in:
linux-omap
Raghuveer, On Thu, Jan 27, 2011 at 6:34 PM, Raghuveer Murthy [off-list ref] wrote:
On Thursday 27 January 2011 06:29 PM, Russell King - ARM Linux wrote:quoted
On Thu, Jan 27, 2011 at 06:19:21PM +0530, Raghuveer Murthy wrote:quoted
quoted
+ ? ? ? r = request_irq(dss_irq, + ? ? ? ? ? ? ? cpu_is_omap24xx() + ? ? ? ? ? ? ? ? dss_irq_handler_omap2 + ? ? ? ? ? ? ? : dss_irq_handler_omap3,it should be ? ? ? ? ? ? ? ?cpu_is_omap24xx() ? ? ? ? ? ? ? ?? dss_irq_handler_omap3 ? ? ? ? ? ? ? ?: dss_irq_handler_omap2, I am seeing a crash on Panda, which gets rectified with this change. The root cause is access to DSS_IRQSTATUS register in the dss_irq_handler_omap3 handler, which is not valid for OMAP4.That really doesn't look right. ?Let me translate the code you've just written: ? ? ? ?if (cpu_is_omap24xx()) ? ? ? ? ? ? ? ?handler = dss_irq_handler_omap3; ? ? ? ?else ? ? ? ? ? ? ? ?handler = dss_irq_handler_omap2; Which means: if we have an OMAP24xx device, use the OMAP3 handler, otherwise use the OMAP2 handler. ?That's got to be wrong.I agree, that the logic seems counter-intuitive. I was doing a quick test. However, to ?keep the correct sequence, the logic inside the respective handlers need to be looked at.
If you see the patch series, this is relevant only for OMAP2,3. OMAP4 related IRQ handling is not yet introduced. There would a different patch set which should set the correct irq handler for OMAP4.
Regards, Raghuveer