Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

pwm: atmel: Fix duty cycle calculation in .get_state()

The CDTY register contains the number of inactive cycles. .apply() does
this correctly, however .get_state() got this wrong.

Fixes: 651b510a74d4 ("pwm: atmel: Implement .get_state()")
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>

authored by

Uwe Kleine-König and committed by
Thierry Reding
453e8b3d 721b5957

+1 -1
+1 -1
drivers/pwm/pwm-atmel.c
··· 319 319 320 320 cdty = atmel_pwm_ch_readl(atmel_pwm, pwm->hwpwm, 321 321 atmel_pwm->data->regs.duty); 322 - tmp = (u64)cdty * NSEC_PER_SEC; 322 + tmp = (u64)(cprd - cdty) * NSEC_PER_SEC; 323 323 tmp <<= pres; 324 324 state->duty_cycle = DIV64_U64_ROUND_UP(tmp, rate); 325 325