Lubbock interrupts fix (was lubbock udc phy)
Dmitry Eremin-Solenikov
dbaryshkov at gmail.com
Wed Nov 26 14:39:43 PST 2014
2014-11-27 1:38 GMT+03:00 Robert Jarzmik <robert.jarzmik at free.fr>:
> Dmitry Eremin-Solenikov <dbaryshkov at gmail.com> writes:
>
>> 2014-11-27 1:12 GMT+03:00 Robert Jarzmik <robert.jarzmik at free.fr>:
>>> OK Dmitry, I pulled through, the interrupts are working back.
>>
>> What was the problem? Hardware issues? Firmware in CPLD being of old
>> revision?
> There were basically 2 problems :
> - hardware: switch S13 was in a position that disabled interrupts all the time
> One other problem which fooled me was the incorrect gate schematics I had,
> and which make my understanding of linear function foo such as
> GPIO0 = foo(LUB_IRQ_EN, LUB_SET_CLR) false.
>
> - software: lubbock.c error
> Since gpio-pxa was ported to device/gpio, it is probed *after*
> lubbock_init_irq() is called. As lubbock_init_irq() installs
> lubbock_irq_handler() and sets the irq to falling edge detect before gpio-pxa
> is probed, gpio-pxa probe overwrites this by :
> - clearing any edge detection (probe state reset)
> - installing generic handle_edge_irq() instead of the lubbock irq handler
>
> So the conclusion is that I have to rework lubbock_init_irq(), remove from it
> the PXA_GPIO_TO_IRQ(0) stuff, and move it to a code in lubbock.c which will
> provide the guarantee of being executed _after_ gpio-pxa is probed. When I'm
> happy with my patch I'll submit it.
Thank you for your explanation.
--
With best wishes
Dmitry
More information about the linux-arm-kernel
mailing list