Thread (41 messages) 41 messages, 6 authors, 2011-03-01
STALE5575d

[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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help