From: Archana Patni <archana.pa...@intel.com>

This patch adds suspend and resume pm ops to the LPC ChromeOS EC driver.
These LPC handlers call the croc_ec generic handlers.

Signed-off-by: Archana Patni <archana.pa...@intel.com>
Signed-off-by: Thierry Escande <thierry.esca...@collabora.com>
---
 drivers/platform/chrome/cros_ec_lpc.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/drivers/platform/chrome/cros_ec_lpc.c 
b/drivers/platform/chrome/cros_ec_lpc.c
index 90703521..89afad7 100644
--- a/drivers/platform/chrome/cros_ec_lpc.c
+++ b/drivers/platform/chrome/cros_ec_lpc.c
@@ -333,10 +333,31 @@ static struct dmi_system_id cros_ec_lpc_dmi_table[] 
__initdata = {
 };
 MODULE_DEVICE_TABLE(dmi, cros_ec_lpc_dmi_table);
 
+#ifdef CONFIG_PM_SLEEP
+static int cros_ec_lpc_suspend(struct device *dev)
+{
+       struct cros_ec_device *ec_dev = dev_get_drvdata(dev);
+
+       return cros_ec_suspend(ec_dev);
+}
+
+static int cros_ec_lpc_resume(struct device *dev)
+{
+       struct cros_ec_device *ec_dev = dev_get_drvdata(dev);
+
+       return cros_ec_resume(ec_dev);
+}
+#endif
+
+const struct dev_pm_ops cros_ec_lpc_pm_ops = {
+       SET_LATE_SYSTEM_SLEEP_PM_OPS(cros_ec_lpc_suspend, cros_ec_lpc_resume)
+};
+
 static struct platform_driver cros_ec_lpc_driver = {
        .driver = {
                .name = DRV_NAME,
                .acpi_match_table = cros_ec_lpc_acpi_device_ids,
+               .pm = &cros_ec_lpc_pm_ops,
        },
        .probe = cros_ec_lpc_probe,
        .remove = cros_ec_lpc_remove,
-- 
2.7.4

Reply via email to