[PATCH v10 18/18] OMAP2, 3: DSS2: Get DSS IRQ from platform device

Raghuveer Murthy x0075817 at ti.com
Thu Jan 27 08:04:41 EST 2011


On Thursday 27 January 2011 06:29 PM, Russell King - ARM Linux wrote:
> On Thu, Jan 27, 2011 at 06:19:21PM +0530, Raghuveer Murthy wrote:
>>> +	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.

Regards,
Raghuveer



More information about the linux-arm-kernel mailing list