summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTony Xie <tony.xie@rock-chips.com>2018-04-25 11:28:06 +0800
committerTao Huang <huangtao@rock-chips.com>2018-04-26 16:44:58 +0800
commit4487c3317266287f94e88edc5c0cd26359844164 (patch)
treefa54a9170d362e75b614327fd0e7b91e0294840c
parente37dce72a0932f34b2348860194163e83c7146cd (diff)
PM / devfreq: rockchip_dmc: Adjust struct rockchip_dmcfreq in suspend.
Change-Id: If9761fe64d7edef6e218dee591f523679e154199 Signed-off-by: Tony Xie <tony.xie@rock-chips.com>
-rw-r--r--drivers/devfreq/rockchip_dmc.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/devfreq/rockchip_dmc.c b/drivers/devfreq/rockchip_dmc.c
index 6b5c77ef2bc8..1e6cb2961589 100644
--- a/drivers/devfreq/rockchip_dmc.c
+++ b/drivers/devfreq/rockchip_dmc.c
@@ -1096,6 +1096,9 @@ static __maybe_unused int rockchip_dmcfreq_suspend(struct device *dev)
struct rockchip_dmcfreq *dmcfreq = dev_get_drvdata(dev);
int ret = 0;
+ if (!dmcfreq)
+ return 0;
+
if (dmcfreq->edev) {
ret = devfreq_event_disable_edev(dmcfreq->edev);
if (ret < 0) {
@@ -1118,6 +1121,9 @@ static __maybe_unused int rockchip_dmcfreq_resume(struct device *dev)
struct rockchip_dmcfreq *dmcfreq = dev_get_drvdata(dev);
int ret = 0;
+ if (!dmcfreq)
+ return 0;
+
if (dmcfreq->edev) {
ret = devfreq_event_enable_edev(dmcfreq->edev);
if (ret < 0) {
@@ -2979,9 +2985,12 @@ static int rockchip_dmcfreq_probe(struct platform_device *pdev)
dev_err(dev, "failed to get system status rate\n");
if (ret == -ENODEV && !data->auto_freq_en) {
dev_info(dev, "don't add devfreq feature\n");
+ if (data->edev)
+ devfreq_event_disable_edev(data->edev);
return 0;
}
}
+
of_property_read_u32(np, "upthreshold",
&data->ondemand_data.upthreshold);
of_property_read_u32(np, "downdifferential",