Re: [PATCH v3] gpio: interrupt consistency check for OF GPIO IRQs

Stephen Warren
2013-09-10T19:53:47Z

On 09/10/2013 02:47 AM, Lars Poeschel wrote:
> On Tuesday 10 September 2013 17:19:24, Mark Brown wrote:
>> On Wed, Sep 04, 2013 at 02:16:36PM -0600, Stephen Warren wrote:
>>> On 09/04/2013 03:05 AM, Lars Poeschel wrote:
>>>> The driver that tries to use the GPIO requested by this patch before HAS
>>>> to
>>>> fail. This is exactly the intention of this patch. We don't want the
>>>> GPIO to be requested any more, if it is used as an interrupt pin.
>>>
>>> That will break existing drivers. There are drivers that request the
>>> same GPIO and IRQ. IIRC, the SDHCI CD (Card Detect) GPIO is requested
>>> that way.
>>
>> Yes, plus input devices and audio jack detection among others. This
>> pattern is very common if the GPIO is actually being used as a GPIO, an
>> edge triggered interrupt is used to flag when something happens and the
>> state is determined by reading the GPIO state (often with some
>> debounce).
>
> And I say it again for those coming into the discussion late, like it has been
> said many many times before: This patch does not break any of this drivers.
> They simply request their GPIO from DT and turn it into an irq using
> gpio_to_irq, request that irq on their behalf and use it as GPIO and IRQ in
> parallel. At least this is not a problem.

Doesn't this patch call gpio_request() on the GPIO first, and hence
prevent the driver's own gpio_request() from succeeding, since the GPIO
is already requested? If this is not a problem, it sounds like a bug in
gpio_request() not ensuring mutual exclusion for the GPIO.