Message ID | 1430899068-57264-1-git-send-email-bnrn@psicontrol.com |
---|---|
State | Awaiting Upstream |
Delegated to: | Stefano Babic |
Headers | show |
Hello Brecht Neyrinck, Am 06.05.2015 09:57, schrieb Brecht Neyrinck: > Prevent overflow by casting duty_ns to ull first. This bug came up when trying to create a 200 Hz PWM > > Signed-off-by: Brecht Neyrinck <bnrn@psicontrol.com> > --- > drivers/pwm/pwm-imx-util.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Thanks! Acked-by: Heiko Schocher<hs@denx.de> bye, Heiko
On 06/05/2015 09:57, Brecht Neyrinck wrote: > Prevent overflow by casting duty_ns to ull first. This bug came up when trying to create a 200 Hz PWM > > Signed-off-by: Brecht Neyrinck <bnrn@psicontrol.com> > --- > drivers/pwm/pwm-imx-util.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/pwm/pwm-imx-util.c b/drivers/pwm/pwm-imx-util.c > index f1d0b35..79d86028 100644 > --- a/drivers/pwm/pwm-imx-util.c > +++ b/drivers/pwm/pwm-imx-util.c > @@ -56,7 +56,7 @@ int pwm_imx_get_parms(int period_ns, int duty_ns, unsigned long *period_c, > *prescale = *period_c / 0x10000 + 1; > > *period_c /= *prescale; > - c = (unsigned long long)(*period_c * duty_ns); > + c = *period_c * (unsigned long long)duty_ns; > do_div(c, period_ns); > *duty_c = c; > Applied to u-boot-imx, thanks ! Best regards, Stefano Babic
diff --git a/drivers/pwm/pwm-imx-util.c b/drivers/pwm/pwm-imx-util.c index f1d0b35..79d86028 100644 --- a/drivers/pwm/pwm-imx-util.c +++ b/drivers/pwm/pwm-imx-util.c @@ -56,7 +56,7 @@ int pwm_imx_get_parms(int period_ns, int duty_ns, unsigned long *period_c, *prescale = *period_c / 0x10000 + 1; *period_c /= *prescale; - c = (unsigned long long)(*period_c * duty_ns); + c = *period_c * (unsigned long long)duty_ns; do_div(c, period_ns); *duty_c = c;
Prevent overflow by casting duty_ns to ull first. This bug came up when trying to create a 200 Hz PWM Signed-off-by: Brecht Neyrinck <bnrn@psicontrol.com> --- drivers/pwm/pwm-imx-util.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)