aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRajendra Nayak <rnayak@codeaurora.org>2015-04-23 04:33:13 -0400
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2015-05-12 17:55:38 -0400
commitd2c4b43d8848afaf968ed1f3cea0c99296ff5ff3 (patch)
tree193a6effd6dde078bbe4c323c63fdf673ef1f568
parentea6f83346ecbe65e061a8c66c5486d3f2c9964e9 (diff)
drivers: sh: remove boilerplate code and use USE_PM_CLK_RUNTIME_OPS
USE_PM_CLK_RUNTIME_OPS is introduced so we don't repeat the same code to do runtime_suspend and runtime_resume across users of PM clocks. Use it to remove the boilerplate code. Signed-off-by: Rajendra Nayak <rnayak@codeaurora.org> Reviewed-by: Kevin Hilman <khilman@linaro.org> Acked-by: Santosh Shilimkar <ssantosh@kernel.org> Acked-by: Geert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-rw-r--r--drivers/sh/pm_runtime.c47
1 files changed, 2 insertions, 45 deletions
diff --git a/drivers/sh/pm_runtime.c b/drivers/sh/pm_runtime.c
index fe8875f0d7be..d3d1891cda3c 100644
--- a/drivers/sh/pm_runtime.c
+++ b/drivers/sh/pm_runtime.c
@@ -20,58 +20,15 @@
20#include <linux/bitmap.h> 20#include <linux/bitmap.h>
21#include <linux/slab.h> 21#include <linux/slab.h>
22 22
23#ifdef CONFIG_PM
24static int sh_pm_runtime_suspend(struct device *dev)
25{
26 int ret;
27
28 ret = pm_generic_runtime_suspend(dev);
29 if (ret) {
30 dev_err(dev, "failed to suspend device\n");
31 return ret;
32 }
33
34 ret = pm_clk_suspend(dev);
35 if (ret) {
36 dev_err(dev, "failed to suspend clock\n");
37 pm_generic_runtime_resume(dev);
38 return ret;
39 }
40
41 return 0;
42}
43
44static int sh_pm_runtime_resume(struct device *dev)
45{
46 int ret;
47
48 ret = pm_clk_resume(dev);
49 if (ret) {
50 dev_err(dev, "failed to resume clock\n");
51 return ret;
52 }
53
54 return pm_generic_runtime_resume(dev);
55}
56
57static struct dev_pm_domain default_pm_domain = { 23static struct dev_pm_domain default_pm_domain = {
58 .ops = { 24 .ops = {
59 .runtime_suspend = sh_pm_runtime_suspend, 25 USE_PM_CLK_RUNTIME_OPS
60 .runtime_resume = sh_pm_runtime_resume,
61 USE_PLATFORM_PM_SLEEP_OPS 26 USE_PLATFORM_PM_SLEEP_OPS
62 }, 27 },
63}; 28};
64 29
65#define DEFAULT_PM_DOMAIN_PTR (&default_pm_domain)
66
67#else
68
69#define DEFAULT_PM_DOMAIN_PTR NULL
70
71#endif /* CONFIG_PM */
72
73static struct pm_clk_notifier_block platform_bus_notifier = { 30static struct pm_clk_notifier_block platform_bus_notifier = {
74 .pm_domain = DEFAULT_PM_DOMAIN_PTR, 31 .pm_domain = &default_pm_domain,
75 .con_ids = { NULL, }, 32 .con_ids = { NULL, },
76}; 33};
77 34