• G
    gpio: pcf857x: handle only enabled irqs · 84f28998
    Grygorii Strashko 提交于
    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
    21fd3cd1 ('gpio: pcf857x: call the gpio user handler iff...')
    
    and then it was removed by commit
     a39294bd ('gpio: pcf857x: Switch to use gpiolib irqchip...')
    
    Cc: Geert Uytterhoeven <geert+renesas@glider.be>
    Fixes: a39294bd ('gpio: pcf857x: Switch to use gpiolib irqchip helpers')
    Signed-off-by: NGrygorii Strashko <grygorii.strashko@ti.com>
    Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
    84f28998
gpio-pcf857x.c 12.4 KB