diff options
author | Saravana Kannan <skannan@codeaurora.org> | 2014-08-07 20:04:45 -0700 |
---|---|---|
committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 20:03:54 -0700 |
commit | 6be4cb0755b900fac5322b9ab8b32e6c7c504e8d (patch) | |
tree | 225bd4437c915873cdba60ff9a6d52bf73c23f4b | |
parent | d30f7c66071c860b8adbff7c24f5f5c69e0402de (diff) |
PM / devfreq: devbw: Add suspend/resume APIs
Absence of traffic is guaranteed when the device sitting behind a devbw
device is suspended. In such cases, it is a waste of power to make non-zero
bandwidth votes or to scale the devbw device. So, provide APIs to
suspend/resume the devbw device as needed.
Change-Id: Id58072aec7a9710eb917f248d9b9bd08d3a1ec6a
Signed-off-by: Saravana Kannan <skannan@codeaurora.org>
-rw-r--r-- | drivers/devfreq/devfreq_devbw.c | 22 | ||||
-rw-r--r-- | include/soc/qcom/devfreq_devbw.h | 10 |
2 files changed, 27 insertions, 5 deletions
diff --git a/drivers/devfreq/devfreq_devbw.c b/drivers/devfreq/devfreq_devbw.c index 091238f253e1..b6b87fc29255 100644 --- a/drivers/devfreq/devfreq_devbw.c +++ b/drivers/devfreq/devfreq_devbw.c @@ -214,11 +214,6 @@ int devfreq_add_devbw(struct device *dev) return 0; } -static int devfreq_devbw_probe(struct platform_device *pdev) -{ - return devfreq_add_devbw(&pdev->dev); -} - int devfreq_remove_devbw(struct device *dev) { struct dev_data *d = dev_get_drvdata(dev); @@ -227,6 +222,23 @@ int devfreq_remove_devbw(struct device *dev) return 0; } +int devfreq_suspend_devbw(struct device *dev) +{ + struct dev_data *d = dev_get_drvdata(dev); + return devfreq_suspend_device(d->df); +} + +int devfreq_resume_devbw(struct device *dev) +{ + struct dev_data *d = dev_get_drvdata(dev); + return devfreq_resume_device(d->df); +} + +static int devfreq_devbw_probe(struct platform_device *pdev) +{ + return devfreq_add_devbw(&pdev->dev); +} + static int devfreq_devbw_remove(struct platform_device *pdev) { return devfreq_remove_devbw(&pdev->dev); diff --git a/include/soc/qcom/devfreq_devbw.h b/include/soc/qcom/devfreq_devbw.h index 77f816cddf6b..7edb2abba487 100644 --- a/include/soc/qcom/devfreq_devbw.h +++ b/include/soc/qcom/devfreq_devbw.h @@ -19,6 +19,8 @@ #ifdef CONFIG_MSM_DEVFREQ_DEVBW int devfreq_add_devbw(struct device *dev); int devfreq_remove_devbw(struct device *dev); +int devfreq_suspend_devbw(struct device *dev); +int devfreq_resume_devbw(struct device *dev); #else static inline int devfreq_add_devbw(struct device *dev) { @@ -28,6 +30,14 @@ static inline int devfreq_remove_devbw(struct device *dev) { return 0; } +static inline int devfreq_suspend_devbw(struct device *dev) +{ + return 0; +} +static inline int devfreq_resume_devbw(struct device *dev) +{ + return 0; +} #endif #endif /* _DEVFREQ_DEVBW_H */ |