diff options
-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", |