diff --git a/drivers/pwm/pwm-rockchip.c b/drivers/pwm/pwm-rockchip.c index 7f02221c258b..0e69bddeec9e 100644 --- a/drivers/pwm/pwm-rockchip.c +++ b/drivers/pwm/pwm-rockchip.c @@ -1121,9 +1121,6 @@ static int rockchip_pwm_set_freq_meter_v4(struct pwm_chip *chip, struct pwm_devi int ret; if (enable) { - ret = clk_enable(pc->clk); - if (ret) - return ret; pc->freq_res_valid = false; arbiter = BIT(pc->channel_id) << FREQ_READ_LOCK_SHIFT | @@ -1141,6 +1138,12 @@ static int rockchip_pwm_set_freq_meter_v4(struct pwm_chip *chip, struct pwm_devi return -EINVAL; } + if (enable) { + ret = clk_enable(pc->clk); + if (ret) + return ret; + } + writel_relaxed(FREQ_INT_EN(enable), pc->base + INT_EN); writel_relaxed(timer_val, pc->base + FREQ_TIMER_VALUE); writel_relaxed(FREQ_EN(enable) | FREQ_CLK_SEL(input_sel) | FREQ_CHANNEL_SEL(channel_sel),