MLK-14989: ASoC: fsl_rpmsg_i2s: enable pm_qos for audio
authorShengjiu Wang <shengjiu.wang@freescale.com>
Wed, 31 May 2017 03:04:52 +0000 (11:04 +0800)
committerNitin Garg <nitin.garg@nxp.com>
Mon, 19 Mar 2018 20:22:26 +0000 (15:22 -0500)
with "echo 1 > /sys/class/graphics/fb0/blank", and there is no
usb connected on board, the system may enter low power mode,
then audio playback will be failed. use pm_qos to prevent A7
core enter low power mode during audio playback and recording.

Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
sound/soc/fsl/fsl_rpmsg_i2s.c
sound/soc/fsl/fsl_rpmsg_i2s.h

index 5a66e90..3cfa3e9 100644 (file)
@@ -178,11 +178,17 @@ static int fsl_rpmsg_i2s_remove(struct platform_device *pdev)
 #ifdef CONFIG_PM
 static int fsl_rpmsg_i2s_runtime_resume(struct device *dev)
 {
+       struct fsl_rpmsg_i2s *rpmsg_i2s = dev_get_drvdata(dev);
+
+       pm_qos_add_request(&rpmsg_i2s->pm_qos_req, PM_QOS_CPU_DMA_LATENCY, 0);
        return 0;
 }
 
 static int fsl_rpmsg_i2s_runtime_suspend(struct device *dev)
 {
+       struct fsl_rpmsg_i2s *rpmsg_i2s = dev_get_drvdata(dev);
+
+       pm_qos_remove_request(&rpmsg_i2s->pm_qos_req);
        return 0;
 }
 #endif
index 259cb63..be951e9 100644 (file)
@@ -309,6 +309,7 @@ struct i2s_info {
 struct fsl_rpmsg_i2s {
        struct platform_device *pdev;
        struct i2s_info        i2s_info;
+       struct pm_qos_request pm_qos_req;
 };
 
 #endif /* __FSL_RPMSG_I2S_H */