[PATCH v2 02/10] gpio: pxa: avoid to use global irq base
Igor Grinberg
grinberg at compulab.co.il
Thu Feb 14 04:27:00 EST 2013
On 02/13/13 16:55, Haojian Zhuang wrote:
> On 13 February 2013 22:18, Igor Grinberg <grinberg at compulab.co.il> wrote:
>> On 02/03/13 12:15, Haojian Zhuang wrote:
>>> Avoid to use global irq_base in gpio-pxa driver. Define irq_base in each
>>> pxa_gpio_chip instead. Then we can avoid to use macro PXA_GPIO_TO_IRQ() &
>>> MMP_GPIO_TO_IRQ().
>>>
>>> Signed-off-by: Haojian Zhuang <haojian.zhuang at linaro.org>
>>
>> Ok. This patch breaks the NFS root on my PXA based systems.
>> I still haven't found the cause of the breakage.
>>
>
> It's so strange. I tested it OK on pxa910 without DT. Could you help
> to check whether your GPIO interrupt still works?
It looks like I've figured this out...
For em-x270 as an example, if I move the IRQ resource assignment to runtime:
diff --git a/arch/arm/mach-pxa/em-x270.c b/arch/arm/mach-pxa/em-x270.c
index 1b64114..178cc0b 100644
--- a/arch/arm/mach-pxa/em-x270.c
+++ b/arch/arm/mach-pxa/em-x270.c
@@ -210,8 +210,6 @@ static struct resource em_x270_dm9000_resource[] = {
.flags = IORESOURCE_MEM,
},
[2] = {
- .start = EM_X270_ETHIRQ,
- .end = EM_X270_ETHIRQ,
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
}
};
@@ -232,6 +230,9 @@ static struct platform_device em_x270_dm9000 = {
static void __init em_x270_init_dm9000(void)
{
+ em_x270_dm9000_resource[2].start = gpio_to_irq(GPIO41_ETHIRQ);
+ em_x270_dm9000_resource[2].end = gpio_to_irq(GPIO41_ETHIRQ);
+
em_x270_dm9000_platdata.flags |= dm9000_flags;
platform_device_register(&em_x270_dm9000);
}
The Ethernet is alive and NFS root works fine.
So my conclusion, is that we still need to have some work done
before we can switch to using IRQ_DOMAIN.
As you can see from above patch, we at least must deal with the
PXA_GPIO_TO_IRQ macros and alike that have compile time assumptions
which obviously get broken once you switch to the IRQ_DOMAIN.
What do you think?
--
Regards,
Igor.
More information about the linux-arm-kernel
mailing list