• Russell King's avatar
    gpio: gpio-omap: Remove conditional pm_runtime handling for GPIO interrupts · 044e499a
    Russell King authored
    Commit b764a586 ("gpio: omap: Remove custom PM calls and use cpu_pm
    instead") moved interrupt using GPIO banks to idle with cpu_pm in order
    to drop the use of pm_runtime_irq_safe() in a later patch. The GPIO
    banks with no interrupts claimed are still being idled based on PM
    runtime calls. However this caused a regression for am437x suspend for
    rtc+ddr idle mode where the device cannot enter idle state as reported
    by Keerthy <j-keerthy@ti.com>.
    
    To fix the issue, we must not fail the pm_runtime callbacks. For GPIO
    interrupts, we already have irq_chip_pm_get increment the PM runtime
    use count as pointed out by Grygorii Strashko <grygorii.strashko@ti.com>.
    
    So all we need to do is remove the conditional handling in the
    runtime_suspend and resume functions and let the CPU PM notifier idle
    the GPIO banks.
    
    Cc: Aaro Koskinen <aaro.koskinen@iki.fi>
    Cc: Grygorii Strashko <grygorii.strashko@ti.com>
    Cc: Keerthy <j-keerthy@ti.com>
    Cc: Peter Ujfalusi <peter.ujfalusi@ti.com>
    Cc: Tero Kristo <t-kristo@ti.com>
    Fixes: b764a586 ("gpio: omap: Remove custom PM calls and use cpu_pm instead")
    Reported-by: default avatarKeerthy <j-keerthy@ti.com>
    Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
    [tony@atomide.com: updated patch description, dropped runtime count changes]
    Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
    Tested-by: default avatarKeerthy <j-keerthy@ti.com>
    Reviewed-by: default avatarKeerthy <j-keerthy@ti.com>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    044e499a
gpio-omap.c 44.5 KB