summaryrefslogtreecommitdiffstats
path: root/target/linux/ipq806x/patches/0059-spmi-pm-drop-bus-level-PM-suspend-resume-routines.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/ipq806x/patches/0059-spmi-pm-drop-bus-level-PM-suspend-resume-routines.patch')
-rw-r--r--target/linux/ipq806x/patches/0059-spmi-pm-drop-bus-level-PM-suspend-resume-routines.patch74
1 files changed, 74 insertions, 0 deletions
diff --git a/target/linux/ipq806x/patches/0059-spmi-pm-drop-bus-level-PM-suspend-resume-routines.patch b/target/linux/ipq806x/patches/0059-spmi-pm-drop-bus-level-PM-suspend-resume-routines.patch
new file mode 100644
index 0000000000..f252fa055b
--- /dev/null
+++ b/target/linux/ipq806x/patches/0059-spmi-pm-drop-bus-level-PM-suspend-resume-routines.patch
@@ -0,0 +1,74 @@
+From 9d13f01e2ec45253adaae1a330cdc4eb881c7377 Mon Sep 17 00:00:00 2001
+From: Josh Cartwright <joshc@codeaurora.org>
+Date: Mon, 3 Mar 2014 10:49:44 -0600
+Subject: [PATCH 059/182] spmi: pm: drop bus-level PM suspend/resume routines
+
+SPMI defines the behavior of a device in the "SLEEP" state as being
+"user-defined or specified by the device manufacturer". Without
+clearly-defined bus-level semantics for low-power states, push the
+responsibility of transitioning a device into/out of "SLEEP" into SPMI
+device drivers.
+
+Cc: Felipe Balbi <balbi@ti.com>
+Signed-off-by: Josh Cartwright <joshc@codeaurora.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/spmi/spmi.c | 35 -----------------------------------
+ 1 file changed, 35 deletions(-)
+
+diff --git a/drivers/spmi/spmi.c b/drivers/spmi/spmi.c
+index 6122c8f..3b57807 100644
+--- a/drivers/spmi/spmi.c
++++ b/drivers/spmi/spmi.c
+@@ -46,40 +46,6 @@ static const struct device_type spmi_ctrl_type = {
+ .release = spmi_ctrl_release,
+ };
+
+-#ifdef CONFIG_PM_RUNTIME
+-static int spmi_runtime_suspend(struct device *dev)
+-{
+- struct spmi_device *sdev = to_spmi_device(dev);
+- int err;
+-
+- err = pm_generic_runtime_suspend(dev);
+- if (err)
+- return err;
+-
+- return spmi_command_sleep(sdev);
+-}
+-
+-static int spmi_runtime_resume(struct device *dev)
+-{
+- struct spmi_device *sdev = to_spmi_device(dev);
+- int err;
+-
+- err = spmi_command_wakeup(sdev);
+- if (err)
+- return err;
+-
+- return pm_generic_runtime_resume(dev);
+-}
+-#endif
+-
+-static const struct dev_pm_ops spmi_pm_ops = {
+- SET_RUNTIME_PM_OPS(
+- spmi_runtime_suspend,
+- spmi_runtime_resume,
+- NULL
+- )
+-};
+-
+ static int spmi_device_match(struct device *dev, struct device_driver *drv)
+ {
+ if (of_driver_match_device(dev, drv))
+@@ -391,7 +357,6 @@ static int spmi_drv_remove(struct device *dev)
+ static struct bus_type spmi_bus_type = {
+ .name = "spmi",
+ .match = spmi_device_match,
+- .pm = &spmi_pm_ops,
+ .probe = spmi_drv_probe,
+ .remove = spmi_drv_remove,
+ };
+--
+1.7.10.4
+