mirror of
https://github.com/torvalds/linux.git
synced 2026-06-04 04:23:35 +02:00
iio: temperature: tsys01: fix broken PROM checksum validation
The current implementation of tsys01_crc_valid() incorrectly sums the
first word (n_prom[0]) repeatedly instead of iterating over the 8 words
retrieved from the PROM. This leads to a checksum mismatch and probe
failure on hardware.
According to the TSYS01 datasheet, the PROM consists of 8 words. A valid
check must iterate through all 8 words to verify the integrity of the
calibration data. The current driver only checks the first word 8 times.
Note: This fix was identified during a code audit and is based on
datasheet specifications. It has not been tested on real hardware.
Fixes: 43e53407f6 ("Add tsys01 meas-spec driver support")
Signed-off-by: Salah Triki <salah.triki@gmail.com>
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
This commit is contained in:
parent
ebd250c258
commit
4701e471c1
|
|
@ -119,7 +119,7 @@ static bool tsys01_crc_valid(u16 *n_prom)
|
|||
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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user