|
@@ -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)
|