Add EC host command to inform EC of AP suspend/resume status.

Signed-off-by: Yilun Lin <yl...@chromium.org>
---

 drivers/platform/chrome/cros_ec_rpmsg.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/drivers/platform/chrome/cros_ec_rpmsg.c 
b/drivers/platform/chrome/cros_ec_rpmsg.c
index 5d3fb2abad1d..6f34fe629e2c 100644
--- a/drivers/platform/chrome/cros_ec_rpmsg.c
+++ b/drivers/platform/chrome/cros_ec_rpmsg.c
@@ -236,6 +236,25 @@ static void cros_ec_rpmsg_remove(struct rpmsg_device 
*rpdev)
        cancel_work_sync(&ec_rpmsg->host_event_work);
 }
 
+#ifdef CONFIG_PM_SLEEP
+static int cros_ec_rpmsg_suspend(struct device *dev)
+{
+       struct cros_ec_device *ec_dev = dev_get_drvdata(dev);
+
+       return cros_ec_suspend(ec_dev);
+}
+
+static int cros_ec_rpmsg_resume(struct device *dev)
+{
+       struct cros_ec_device *ec_dev = dev_get_drvdata(dev);
+
+       return cros_ec_resume(ec_dev);
+}
+#endif
+
+static SIMPLE_DEV_PM_OPS(cros_ec_rpmsg_pm_ops, cros_ec_rpmsg_suspend,
+                        cros_ec_rpmsg_resume);
+
 static const struct of_device_id cros_ec_rpmsg_of_match[] = {
        { .compatible = "google,cros-ec-rpmsg", },
        { }
@@ -246,6 +265,7 @@ static struct rpmsg_driver cros_ec_driver_rpmsg = {
        .drv = {
                .name   = "cros-ec-rpmsg",
                .of_match_table = cros_ec_rpmsg_of_match,
+               .pm     = &cros_ec_rpmsg_pm_ops,
        },
        .probe          = cros_ec_rpmsg_probe,
        .remove         = cros_ec_rpmsg_remove,
-- 
2.23.0.rc1.153.gdeed80330f-goog

Reply via email to