• Tony Lindgren's avatar
    gpio: gpio-omap: Revert deferred wakeup quirk handling for regressions · 00ded24c
    Tony Lindgren authored
    Commit ec0daae6 ("gpio: omap: Add level wakeup handling for omap4
    based SoCs") attempted to fix omap4 GPIO wakeup handling as it was
    blocking deeper SoC idle states. However this caused a regression for
    GPIOs during runtime having over second long latencies for Ethernet
    GPIO interrupt as reportedy by Russell King <rmk+kernel@armlinux.org.uk>.
    
    Let's fix this issue by doing a partial revert of the breaking commit.
    We still want to keep the quirk handling around as it is also used for
    OMAP_GPIO_QUIRK_IDLE_REMOVE_TRIGGER.
    
    The real fix for omap4 GPIO wakeup handling involves fixes for
    omap_set_gpio_trigger() and omap_gpio_unmask_irq() and will be posted
    separately. And we must keep the wakeup bit enabled during runtime
    because of module doing clock autogating with autoidle configured.
    Reported-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
    Fixes: ec0daae6 ("gpio: omap: Add level wakeup handling for omap4
    based SoCs")
    Cc: Aaro Koskinen <aaro.koskinen@iki.fi>
    Cc: Grygorii Strashko <grygorii.strashko@ti.com>
    Cc: Keerthy <j-keerthy@ti.com>
    Cc: Ladislav Michl <ladis@linux-mips.org>
    Cc: Russell King <rmk+kernel@armlinux.org.uk>
    Cc: Tero Kristo <t-kristo@ti.com>
    Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    00ded24c
gpio-omap.c 47.1 KB