Re: [PATCH] iio: temperature: tsys01: fix broken PROM checksum validation
From: Jonathan Cameron
Date: Wed Apr 29 2026 - 05:33:20 EST
On Tue, 28 Apr 2026 18:49:56 +0300
Andy Shevchenko <andriy.shevchenko@xxxxxxxxx> wrote:
> On Tue, Apr 28, 2026 at 04:22:39PM +0100, Salah Triki wrote:
> > The CRC check function was incorrectly using only the first word of the
> > PROM (n_prom[0]) instead of iterating through all words. This caused
> > the driver to fail probing on most devices due to incorrect checksum
> > calculation.
> >
> > - Fix loop to use the correct index n_prom[cnt].
> > - Ensure all bytes are summed as per the datasheet specification.
>
> ...
>
> > u8 sum = 0;
> >
> > for (cnt = 0; cnt < TSYS01_PROM_WORDS_NB; cnt++)
> > - sum += ((n_prom[0] >> 8) + (n_prom[0] & 0xFF));
> > + sum += ((n_prom[cnt] >> 8) + (n_prom[cnt] & 0xFF));
> >
> > return (sum == 0);
>
> This change makes more questions than answers. How had it been tested,
> if tested at all? (This question is to before and to after, the commit
> message is also unclear about what datasheet says or the real field
> testing gives.)
>
I'll guess first word of the PROM is typically 0?
The datasheet indicates that it exists but then says absolutely nothing
about what is in that word - unlike all the others that are documented.
To me the fix looks right (based on the datasheet) but absolutely this
patch description should make that clear if this isn't tested on hardware.