On Thu, Dec 27, 2018 at 07:13:04PM +0100, Paul Cercueil wrote: > The ingenic-timer "TCU" driver provides us with a regmap, that we can > use to safely access the TCU registers. > > While this driver is devicetree-compatible, it is never (as of now) > probed from devicetree, so this change does not introduce a ABI problem > with current devicetree files. Does it change behaviour? If so, how? > @@ -113,26 +117,37 @@ static int jz4740_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm, > > jz4740_pwm_disable(chip, pwm); > > - jz4740_timer_set_count(pwm->hwpwm, 0); > - jz4740_timer_set_duty(pwm->hwpwm, duty); > - jz4740_timer_set_period(pwm->hwpwm, period); > + /* Set abrupt shutdown */ > + regmap_update_bits(jz4740->map, TCU_REG_TCSRc(pwm->hwpwm), > + TCU_TCSR_PWM_SD, TCU_TCSR_PWM_SD); I think I already pointed that out before: abrupt mode is wrong. If .apply is called with a new set of parameters the currently running period with the old values is expected to complete before the new values take effect. Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | http://www.pengutronix.de/ |