drivers: pwm: Fix wrong dc calculation for pwm tests

Values used in tests/drivers/pwm/pwm_api overflows calculation inside
xec_compute_dc(). Make calculation to be done in u64_t and then
convert to int.

Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
This commit is contained in:
Andrei Emeltchenko 2019-09-26 16:08:30 +03:00 committed by Maureen Helm
commit 14c200d022

View file

@ -136,7 +136,8 @@ static u32_t xec_compute_dc(u32_t on, u32_t off)
{ {
int dc = (on + 1) + (off + 1); int dc = (on + 1) + (off + 1);
dc = (((on + 1) * XEC_PWM_DC_PF) / dc); /* Make calculation in u64_t since XEC_PWM_DC_PF is large */
dc = (((u64_t)(on + 1) * XEC_PWM_DC_PF) / dc);
return (u32_t)dc; return (u32_t)dc;
} }