diff options
author | Tony Xie <tony.xie@rock-chips.com> | 2018-04-25 11:28:06 +0800 |
---|---|---|
committer | Tao Huang <huangtao@rock-chips.com> | 2018-04-26 16:44:58 +0800 |
commit | 4487c3317266287f94e88edc5c0cd26359844164 (patch) | |
tree | fa54a9170d362e75b614327fd0e7b91e0294840c | |
parent | e37dce72a0932f34b2348860194163e83c7146cd (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.c | 9 |
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", |