From b882be452dd92ffc3afb9e78c11519939a13f856 Mon Sep 17 00:00:00 2001 From: Damon Ding Date: Wed, 28 Feb 2024 14:39:09 +0800 Subject: [PATCH] pwm: rockchip: move the clk_enable() after arbiter check in freq mode Change-Id: I219f8bfb033214b5f3cf85883d2c3c27d2c5ffb6 Signed-off-by: Damon Ding --- drivers/pwm/pwm-rockchip.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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),