Messages in this thread | | | Subject | Re: [PATCH v3 12/19] hwmon: (mr75203) fix voltage equation for negative source input | Date | Thu, 1 Sep 2022 15:47:39 +0300 | From | "Farber, Eliav" <> |
| |
On 8/31/2022 3:04 PM, Andy Shevchenko wrote: > On Tue, Aug 30, 2022 at 07:22:05PM +0000, Eliav Farber wrote: >> According to Moortec Embedded Voltage Monitor (MEVM) series 3 data >> sheet, >> the minimum input signal is -100mv and maximum input signal is +1000mv. >> When n was small enough, such that PVT_N_CONST * n < PVT_R_CONST it >> resulted in n overflowing to a very large number (since n is u32 type). >> >> This change fixes the problem by casting n to long and replacing shift >> right with div operation. > > Fixes tag?
For v4 I modified the commit message to (hopefully) be more understandable:
" According to Moortec Embedded Voltage Monitor (MEVM) series 3 data sheet, the minimum input signal is -100mv and maximum input signal is +1000mv.
On 64 bit machines sizeof(u32) = 4 and sizeof(long) = 8. So when measuring a negative input and n is small enough, such that PVT_N_CONST * n < PVT_R_CONST, it results in n overflowing to a very large number which is not negative (because 4 MSB bytes of val are 0).
This change fixes the sign problem and supports negative values by casting n to long and replacing shift right with div operation. "
> ... > >> n &= SAMPLE_DATA_MSK; >> + > > Unrelated change.
Removed.
-- Thanks, Eliav
| |