MLK-21244 rpmsg: imx: move pm ops to noirq phrase
authorAnson Huang <anson.huang@nxp.com>
Sat, 23 Mar 2019 03:56:47 +0000 (11:56 +0800)
committerRichard Zhu <hongxing.zhu@nxp.com>
Tue, 23 Apr 2019 02:48:08 +0000 (10:48 +0800)
Some rpmsg user may require rpmsg resume before the user start
handle its irq, e.g the typec controller use a GPIO as irq and
use rpmsg to get event status, so move imx rpmsg power management
ops to noirq phrase.

Reviewed-by: Richard Zhu <hongxing.zhu@nxp.com>
Tested-by: Clark Wang <xiaoning.wang@nxp.com>
Signed-off-by: Anson Huang <anson.huang@nxp.com>
Signed-off-by: Li Jun <jun.li@nxp.com>
drivers/rpmsg/imx_rpmsg.c

index 498a16d..356f613 100644 (file)
@@ -772,7 +772,7 @@ vdev_err_out:
 }
 
 #ifdef CONFIG_PM_SLEEP
-static int imx_rpmsg_suspend(struct device *dev)
+static int imx_rpmsg_noirq_suspend(struct device *dev)
 {
        struct imx_rpmsg_vproc *rpdev = dev_get_drvdata(dev);
 
@@ -782,7 +782,7 @@ static int imx_rpmsg_suspend(struct device *dev)
        return 0;
 }
 
-static int imx_rpmsg_resume(struct device *dev)
+static int imx_rpmsg_noirq_resume(struct device *dev)
 {
        struct imx_rpmsg_vproc *rpdev = dev_get_drvdata(dev);
        int ret;
@@ -799,7 +799,10 @@ static int imx_rpmsg_resume(struct device *dev)
 }
 #endif
 
-static SIMPLE_DEV_PM_OPS(imx_rpmsg_pm_ops, imx_rpmsg_suspend, imx_rpmsg_resume);
+static const struct dev_pm_ops imx_rpmsg_pm_ops = {
+       SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(imx_rpmsg_noirq_suspend,
+                                     imx_rpmsg_noirq_resume)
+};
 
 static struct platform_driver imx_rpmsg_driver = {
        .driver = {