ASoC: ABE DSP: Protect abe irq handler
ABE irq handler can be called when streams have already been closed,
so it's required to explicitly protect that code within pm_runtime
get/put calls.
Signed-off-by: Sebastien Guiriec <s-guiriec@ti.com>
diff --git a/sound/soc/omap/omap-abe-dsp.c b/sound/soc/omap/omap-abe-dsp.c
index afbdcf1..ec2106d 100644
--- a/sound/soc/omap/omap-abe-dsp.c
+++ b/sound/soc/omap/omap-abe-dsp.c
@@ -183,9 +183,15 @@
static irqreturn_t abe_irq_handler(int irq, void *dev_id)
{
+ /* TODO: do not use abe global structure to assign pdev */
+ struct platform_device *pdev = abe->pdev;
+
/* TODO: handle underruns/overruns/errors */
+ pm_runtime_get_sync(&pdev->dev);
abe_irq_clear();
abe_irq_processing();
+ pm_runtime_put_sync(&pdev->dev);
+
return IRQ_HANDLED;
}