gpio: omap: Get rid of pm_runtime_irq_safe()
authorTony Lindgren <tony@atomide.com>
Thu, 20 Sep 2018 19:35:32 +0000 (12:35 -0700)
committerLinus Walleij <linus.walleij@linaro.org>
Mon, 24 Sep 2018 12:24:54 +0000 (14:24 +0200)
If a gpio instance has any GPIO bits requested we do a pm_runtime_get()
on the device. Now with cpu_pm handling the deeper SoC idle state quirks,
let's just remove pm_runtime_irq_safe() call and add a warning in case we
ever happen to encounter it.

Cc: Aaro Koskinen <aaro.koskinen@iki.fi>
Cc: Keerthy <j-keerthy@ti.com>
Cc: Ladislav Michl <ladis@linux-mips.org>
Cc: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Acked-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpio-omap.c

index 3d021f648c5de73729c1e81e387b7c1eb6683da6..c0d7ae766de4cfa5f3097c1e781919a38e1c1b8c 100644 (file)
@@ -763,7 +763,9 @@ static irqreturn_t omap_gpio_irq_handler(int irq, void *gpiobank)
        if (WARN_ON(!isr_reg))
                goto exit;
 
-       pm_runtime_get_sync(bank->chip.parent);
+       if (WARN_ONCE(!pm_runtime_active(bank->chip.parent),
+                     "gpio irq%i while runtime suspended?\n", irq))
+               return IRQ_NONE;
 
        while (1) {
                raw_spin_lock_irqsave(&bank->lock, lock_flags);
@@ -814,7 +816,6 @@ static irqreturn_t omap_gpio_irq_handler(int irq, void *gpiobank)
                }
        }
 exit:
-       pm_runtime_put(bank->chip.parent);
        return IRQ_HANDLED;
 }
 
@@ -1466,7 +1467,6 @@ static int omap_gpio_probe(struct platform_device *pdev)
        platform_set_drvdata(pdev, bank);
 
        pm_runtime_enable(dev);
-       pm_runtime_irq_safe(dev);
        pm_runtime_get_sync(dev);
 
        if (bank->is_mpuio)