Commit 25f70b8f authored by Uwe Kleine-König's avatar Uwe Kleine-König Committed by Thierry Reding

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

As the last call to ecap_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: 0ca7acd8 ("pwm: tiecap: Implement .apply() callback")
Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: default avatarThierry Reding <thierry.reding@gmail.com>
parent fe8255f8
...@@ -189,16 +189,13 @@ static int ecap_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm, ...@@ -189,16 +189,13 @@ static int ecap_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
return 0; return 0;
} }
if (state->period != pwm->state.period || if (state->period > NSEC_PER_SEC)
state->duty_cycle != pwm->state.duty_cycle) { return -ERANGE;
if (state->period > NSEC_PER_SEC)
return -ERANGE;
err = ecap_pwm_config(chip, pwm, state->duty_cycle, err = ecap_pwm_config(chip, pwm, state->duty_cycle,
state->period, enabled); state->period, enabled);
if (err) if (err)
return err; return err;
}
if (!enabled) if (!enabled)
return ecap_pwm_enable(chip, pwm); return ecap_pwm_enable(chip, pwm);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment