mirror of https://gitee.com/openkylin/linux.git
pwm: fsl-ftm: Make sure to unlock mutex on failure
Upon failure to enable clocks while trying to enable the PWM, make sure to unlock the mutex that was taken to avoid a deadlock during subsequent operations. Reported-by: kbuild test robot <lkp@intel.com> Reported-by: Julia Lawall <julia.lawall@lip6.fr> Cc: Patrick Havelange <patrick.havelange@essensium.com> Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
This commit is contained in:
parent
a2a28229cd
commit
3d25025ce9
|
@ -342,12 +342,12 @@ static int fsl_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
|
||||||
if (!oldstate->enabled) {
|
if (!oldstate->enabled) {
|
||||||
ret = clk_prepare_enable(fpc->clk[fpc->period.clk_select]);
|
ret = clk_prepare_enable(fpc->clk[fpc->period.clk_select]);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
goto end_mutex;
|
||||||
|
|
||||||
ret = clk_prepare_enable(fpc->clk[FSL_PWM_CLK_CNTEN]);
|
ret = clk_prepare_enable(fpc->clk[FSL_PWM_CLK_CNTEN]);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
clk_disable_unprepare(fpc->clk[fpc->period.clk_select]);
|
clk_disable_unprepare(fpc->clk[fpc->period.clk_select]);
|
||||||
return ret;
|
goto end_mutex;
|
||||||
}
|
}
|
||||||
|
|
||||||
regmap_update_bits(fpc->regmap, FTM_OUTMASK, BIT(pwm->hwpwm),
|
regmap_update_bits(fpc->regmap, FTM_OUTMASK, BIT(pwm->hwpwm),
|
||||||
|
|
Loading…
Reference in New Issue