Messages in this thread | ![/](/images/icornerl.gif) | | Date | Mon, 5 Feb 2024 11:19:59 +0200 | Subject | Re: [PATCH] iio: gts-helper: Fix division loop | From | Matti Vaittinen <> |
| |
On 2/4/24 15:49, Subhajit Ghosh wrote: > Hi Matti, >>>>>> drivers/iio/industrialio-gts-helper.c | 5 ++--- >>>>>> 1 file changed, 2 insertions(+), 3 deletions(-) >>>>>> >>>>>> diff --git a/drivers/iio/industrialio-gts-helper.c >>>>>> b/drivers/iio/industrialio-gts-helper.c >>>>>> index 7653261d2dc2..abcab2d38589 100644 >>>>>> --- a/drivers/iio/industrialio-gts-helper.c >>>>>> +++ b/drivers/iio/industrialio-gts-helper.c >>>>>> @@ -34,7 +34,7 @@ >>>>>> static int iio_gts_get_gain(const u64 max, const u64 scale) >>>>>> { >>>>>> u64 full = max; >>>>>> - int tmp = 1; >>>>>> + int tmp = 0; >>>>>> if (scale > full || !scale) >>>>>> return -EINVAL; >>>>>> @@ -48,8 +48,7 @@ static int iio_gts_get_gain(const u64 max, const >>>>>> u64 scale) >>>>>> tmp++; >>>>>> } >>>>>> - while (full > scale * (u64)tmp) >>>>>> - tmp++; >>>>>> + tmp += div64_u64(full, scale); >>>>>> return tmp; >>>>>> } >>>>>> >>>>>> base-commit: 2cc14f52aeb78ce3f29677c2de1f06c0e91471ab >>>>> >>>>> >>>> Hi Matti, >>>> >>>> Your fix works beautifully with the latest version of apds9306 >>>> driver which I am working on. >>>> All available scale values can be set without any errors. Thank you. >>> >>> Thanks for testing Subhajit! Just to ensure we have no >>> miscommunication - did you test just this division fix, or the >>> rounding fix here: >>> https://lore.kernel.org/lkml/37d3aa193e69577353d314e94463a08d488ddd8d.1701780964.git.mazziesaccount@gmail.com/ >> You are most welcome. I did not check the above rounding fix pointed >> out by the link. I will be happy to check it and let you know by the >> end of this month. >> I checked this division fix. > I tested the patch in the above link with adps9306 driver which I am > working on and it seems to work well without any issues.
Great! Thanks a lot Subhajit! Your testing is very much appreciated :)
I think you sent another version of your APDS9306 driver. AFAIR, this driver could have benefited from the above rounding fix. I will see if I find the time and energy to see if I can dive into this again and re-spin this rounding fix. No promises but I'll try :)
Yours, -- Matti
-- Matti Vaittinen Linux kernel developer at ROHM Semiconductors Oulu Finland
~~ When things go utterly wrong vim users can always type :help! ~~
| ![\](/images/icornerr.gif) |