提交 7d6d4aaf 编写于 作者: U Uwe Kleine-König 提交者: Thierry Reding

pwm: berlin: Ensure configuring period and duty_cycle isn't wrongly skipped

As the last call to berlin_pwm_apply() might have exited early if
state->enabled was false, the values for period and duty_cycle stored in
pwm->state might not have been written to hardware and it must be
ensured that they are configured before enabling the PWM.

Fixes: 30dffb42 ("pwm: berlin: Implement .apply() callback")
Signed-off-by: NUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: NThierry Reding <thierry.reding@gmail.com>
上级 25f70b8f
...@@ -190,12 +190,9 @@ static int berlin_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm, ...@@ -190,12 +190,9 @@ static int berlin_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
return 0; return 0;
} }
if (state->period != pwm->state.period || err = berlin_pwm_config(chip, pwm, state->duty_cycle, state->period);
state->duty_cycle != pwm->state.duty_cycle) { if (err)
err = berlin_pwm_config(chip, pwm, state->duty_cycle, state->period); return err;
if (err)
return err;
}
if (!enabled) if (!enabled)
return berlin_pwm_enable(chip, pwm); return berlin_pwm_enable(chip, pwm);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册