diff --git a/drivers/media/platform/rockchip/cif/hw.c b/drivers/media/platform/rockchip/cif/hw.c index 214ee91b1fd5..e1fc21b50f6b 100644 --- a/drivers/media/platform/rockchip/cif/hw.c +++ b/drivers/media/platform/rockchip/cif/hw.c @@ -1554,6 +1554,9 @@ static int __maybe_unused rkcif_sleep_suspend(struct device *dev) { struct rkcif_hw *cif_hw = dev_get_drvdata(dev); + if (atomic_read(&cif_hw->power_cnt) == 0) + return 0; + rkcif_disable_sys_clk(cif_hw); return pinctrl_pm_select_sleep_state(dev); @@ -1564,6 +1567,9 @@ static int __maybe_unused rkcif_sleep_resume(struct device *dev) struct rkcif_hw *cif_hw = dev_get_drvdata(dev); int ret; + if (atomic_read(&cif_hw->power_cnt) == 0) + return 0; + ret = pinctrl_pm_select_default_state(dev); if (ret < 0) return ret;