[PATCH] ARM: pxa: fix lubbock interrupts handling
Thomas Gleixner
tglx at linutronix.de
Thu Nov 27 14:03:10 PST 2014
On Thu, 27 Nov 2014, Robert Jarzmik wrote:
> When gpio-pxa was moved to drivers/pxa, it became a driver, and its
> initialization and probing happen at postcore initcall. The lubbock code
> used to install the chained lubbock interrupt handler at init_irq()
> time.
>
> The consequence of the gpio-pxa change is that the installed chained irq
> handler lubbock_irq_handler() was overwritten in pxa_gpio_probe(_dt)(),
> removing :
> - the handler
> - the falling edge detection setting of GPIO0, which revealed the
> interrupt request from the lubbock IO board.
>
> As a fix, move the gpio0 chained handler setup to a place where we have
> the guarantee that pxa_gpio_probe() was called before, so that lubbock
> handler becomes the true IRQ chained handler of GPIO0, demuxing the
> lubbock IO board interrupts.
>
> Signed-off-by: Robert Jarzmik <robert.jarzmik at free.fr>
> ---
> For Thomas: as a side note, I'm not very happy with this patch. What
> makes me unhappy is that I don't know how to express the
> dependency between gpio-pxa probe time and
> irq_set_chained_handler(irq, lubbock_irq_handler).
>
> At the moment I rely on the fact that
> lubbock_irq_device_init() is called as device initcall while
> pxa_gpio_probe() is called as postcore initcall.
Admittedly I'm confused.
So what is the relationship between installing that chained handler
and that gpio-pxa probe stuff?
And why is the GPIO0 interrupt handled from arch code rather than from
a regular driver setup, which depends on the availablity of the GPIO
driver?
Thanks,
tglx
More information about the linux-arm-kernel
mailing list