Re: [PATCH v2] gpio: pcf857x: handle only enabled irqs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 06/16/2015 12:06 PM, Geert Uytterhoeven wrote:
> On Tue, Jun 16, 2015 at 10:58 AM, Linus Walleij
> <linus.walleij@xxxxxxxxxx> wrote:
>> <grygorii.strashko@xxxxxx> wrote:
>>
>>> Now pcf857x_irq() IRQ's dispatcher will try to run nested
>>> IRQ handlers for each GPIO pin which state has changed.
>>> Such IRQs are, actually, spurious and nested IRQ handlers
>>> have to be called only for IRQs wich were enabled by users.
>>> This is not critical issue - just  /proc/interrupts
>>> will display counters for unused IRQS:
>>> 399:          4          0   pcf857x   0 Edge
>>> 428:          1          0   pcf857x  13 Edge
>>> 430:          1          0   pcf857x  15 Edge
>>>
>>> Hence, fix it by adding irq_enabled field in struct pcf857x to track
>>> enabled GPIO IRQs and corresponding callbacks in pcf857x_irq_chip.
>>>
>>> Similar functionality was presented in pcf857x driver, commit
>>> 21fd3cd1874a ('gpio: pcf857x: call the gpio user handler iff...')
>>>
>>> and then it was removed by commit
>>>   a39294bdf4b0 ('gpio: pcf857x: Switch to use gpiolib irqchip...')
>>>
>>> Cc: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
>>>
>>> Fixes: a39294bdf4b0 ('gpio: pcf857x: Switch to use gpiolib irqchip helpers')
>>> Signed-off-by: Grygorii Strashko <grygorii.strashko@xxxxxx>
>>> ---
>>>
>>> No functional changes.
>>> It's just rebased on top of "devel" branch
>>> git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git
>>
>> Patch applied since no comments arrived.

Thanks.

> 
> Sorry for the late reply, still recovering from travel backlog.
> I gave it a quick try on sh73a0/kzm9g. No visible impact, gpio keys and
> wake-up from s2ram still work.

Thanks.

> 
> Note that this board didn't seem to be affected by the issue that was fixed by
> 21fd3cd1874a ('gpio: pcf857x: call the gpio user handler iff...').

True. This is because generic_handle_irq() is not used any more, and  handle_nested_irq()
is used instead. So, original issue, fixed by 21fd3cd1874a,
transformed into  displaying of wrong IRQ statistic which is fixed by this patch.

-- 
regards,
-grygorii
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux