summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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",