Messages in this thread Patch in this message | | | From | Hari Prasath Gujulan Elango <> | Subject | [PATCH] pwm: atmel: add missing clk_disable_unprepare() | Date | Tue, 22 Aug 2023 12:34:41 +0530 |
| |
Fix the below smatch warning:
drivers/pwm/pwm-atmel-hlcdc.c:167 atmel_hlcdc_pwm_apply() warn: 'new_clk' from clk_prepare_enable() not released on lines: 112,137,142,149.
Signed-off-by: Hari Prasath Gujulan Elango <Hari.PrasathGE@microchip.com> --- drivers/pwm/pwm-atmel-hlcdc.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-)
diff --git a/drivers/pwm/pwm-atmel-hlcdc.c b/drivers/pwm/pwm-atmel-hlcdc.c index 96a709a9d49a..ce46f6c74a14 100644 --- a/drivers/pwm/pwm-atmel-hlcdc.c +++ b/drivers/pwm/pwm-atmel-hlcdc.c @@ -108,8 +108,10 @@ static int atmel_hlcdc_pwm_apply(struct pwm_chip *c, struct pwm_device *pwm, ATMEL_HLCDC_CFG(0), ATMEL_HLCDC_CLKPWMSEL, gencfg); - if (ret) + if (ret) { + clk_disable_unprepare(new_clk); return ret; + } } do_div(pwmcval, state->period); @@ -133,20 +135,27 @@ static int atmel_hlcdc_pwm_apply(struct pwm_chip *c, struct pwm_device *pwm, ATMEL_HLCDC_PWMPS_MASK | ATMEL_HLCDC_PWMPOL, pwmcfg); - if (ret) + if (ret) { + clk_disable_unprepare(new_clk); return ret; + } ret = regmap_write(hlcdc->regmap, ATMEL_HLCDC_EN, ATMEL_HLCDC_PWM); - if (ret) + if (ret) { + clk_disable_unprepare(new_clk); return ret; + } ret = regmap_read_poll_timeout(hlcdc->regmap, ATMEL_HLCDC_SR, status, status & ATMEL_HLCDC_PWM, 10, 0); - if (ret) + if (ret) { + clk_disable_unprepare(new_clk); return ret; + } + } else { ret = regmap_write(hlcdc->regmap, ATMEL_HLCDC_DIS, ATMEL_HLCDC_PWM); -- 2.34.1
| |