[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <51FB8292.9090000@ahsoftware.de>
Date: Fri, 02 Aug 2013 11:57:38 +0200
From: Alexander Holler <holler@...oftware.de>
To: Javier Martinez Canillas <javier.martinez@...labora.co.uk>
CC: Linus Walleij <linus.walleij@...aro.org>,
Grant Likely <grant.likely@...aro.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>,
Linux-OMAP <linux-omap@...r.kernel.org>,
"devicetree@...r.kernel.org" <devicetree@...r.kernel.org>,
Enric Balletbo i Serra <eballetbo@...il.com>,
Jean-Christophe PLAGNIOL-VILLARD <plagnioj@...osoft.com>,
Santosh Shilimkar <santosh.shilimkar@...com>,
Kevin Hilman <khilman@...aro.org>,
Balaji T K <balajitk@...com>,
Tony Lindgren <tony@...mide.com>,
Jon Hunter <jgchunter@...il.com>
Subject: Re: [PATCH] RFC: interrupt consistency check for OF GPIO IRQs
Am 31.07.2013 10:35, schrieb Javier Martinez Canillas:
>
> The problem is that board files and drivers that has not not been completed
> migrated to DT assumes (at least for OMAP) that *every* GPIO line is mapped as
> an IRQ and they just do:
>
> gpio_request(gpio,...);
> gpio_direction_input()
> request[_threaded]_irq(gpio_to_irq(gpio), ...);
>
> My patch-set changed the gpio-omap driver to not map all GPIO lines but only the
> ones that were really used as an IRQ and let the DT core to do the mapping from
> irq_create_of_mapping(). The first problem reported with the OMAP patch was that
> a driver was using the above sequence and that the GPIO had not been mapped.
> This user was booting with DT and so this showed a bug in the driver and a DT
> that did not conform with the standard schema used in mainline but this shows a
> potential issue.
There must have been a bug in the patch too. I've also added that
iinterrupt-parent stuff (with the same flags as used by the driver) and
just have let the driver call
request_threaded_irq(gpio_to_irq(gpio), flags);
without the gpio_request()/input() before. And request_threaded_irq()
returned -EBUSY. I'm pretty sure nothing else did use that gpio, but I
haven't looked at why request_threaded_irq() returned -EBUSY. I assume
the new mapping stuff did reserve the irq in such a way, that the driver
couldn't request the IRQ.
Otherwise I wouldn't have had a problem by just adding the necessary
entries to the DT.
But I have to say I didn't like the syntax too, and it wasn't obvious
how the syntax is and how to conclude from a gpio number to an
irq-number and the patch didn't really include some documentation or
useful example.
Regards,
Alexander Holler
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists