From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Babic Date: Fri, 15 May 2015 10:06:59 +0200 Subject: [U-Boot] [PATCH] bugfix i.mx6 pwm: prevent overflow of period_c * duty_ns In-Reply-To: <1430899068-57264-1-git-send-email-bnrn@psicontrol.com> References: <1430899068-57264-1-git-send-email-bnrn@psicontrol.com> Message-ID: <5555A923.5030404@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 > --- > 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 -- ===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de =====================================================================