Skip to content

Commit

Permalink
pwm: spear: Ensure configuring period and duty_cycle isn't wrongly sk…
Browse files Browse the repository at this point in the history
…ipped

As the last call to spear_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: 98761ce ("pwm: spear: Implement .apply() callback")
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
  • Loading branch information
Uwe Kleine-König authored and Thierry Reding committed Jul 8, 2021
1 parent 65e2e6c commit fe8255f
Showing 1 changed file with 3 additions and 6 deletions.
9 changes: 3 additions & 6 deletions drivers/pwm/pwm-spear.c
Original file line number Diff line number Diff line change
Expand Up @@ -177,12 +177,9 @@ static int spear_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
return 0;
}

if (state->period != pwm->state.period ||
state->duty_cycle != pwm->state.duty_cycle) {
err = spear_pwm_config(chip, pwm, state->duty_cycle, state->period);
if (err)
return err;
}
err = spear_pwm_config(chip, pwm, state->duty_cycle, state->period);
if (err)
return err;

if (!pwm->state.enabled)
return spear_pwm_enable(chip, pwm);
Expand Down

0 comments on commit fe8255f

Please sign in to comment.