]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
staging: comedi: dt3000: Fix rounding up of timer divisor
authorIan Abbott <abbotti@mev.co.uk>
Mon, 12 Aug 2019 12:08:14 +0000 (13:08 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 25 Aug 2019 08:53:01 +0000 (10:53 +0200)
commit6bf6e04db5c7aa8f2e8b56ce6f2c1099f495270c
tree1caee0aff3a02349dab4bf90d96cf5b8d5ba25f8
parent893e2dbcfb77efdcd5025786f30f5fc7e91e8cb6
staging: comedi: dt3000: Fix rounding up of timer divisor

commit 8e2a589a3fc36ce858d42e767c3bcd8fc62a512b upstream.

`dt3k_ns_to_timer()` determines the prescaler and divisor to use to
produce a desired timing period.  It is influenced by a rounding mode
and can round the divisor up, down, or to the nearest value.  However,
the code for rounding up currently does the same as rounding down!  Fix
ir by using the `DIV_ROUND_UP()` macro to calculate the divisor when
rounding up.

Also, change the types of the `divider`, `base` and `prescale` variables
from `int` to `unsigned int` to avoid mixing signed and unsigned types
in the calculations.

Also fix a typo in a nearby comment: "improvment" => "improvement".

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20190812120814.21188-1-abbotti@mev.co.uk
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/comedi/drivers/dt3000.c