* [PATCH 2/2] W1: w1_therm.c is flagging 0C etc as invalid
@ 2008-01-20 0:44 David Fries
0 siblings, 0 replies; only message in thread
From: David Fries @ 2008-01-20 0:44 UTC (permalink / raw)
To: linux-kernel
commit d05074b1beb66d40283228bd226f7244407375bb
Author: David Fries <david@fries.net>
Date: Sat Jan 19 18:06:49 2008 -0600
The extra rom[0] check is flagging valid temperatures as invalid when
there is already a CRC data transmission check.
w1_therm_read_bin()
if (rom[8] == crc && rom[0])
verdict = 1;
Requiring rom[0] to be non-zero will flag as invalid temperature
conversions when the low byte is zero, specifically the temperatures
0C, 16C, 32C, 48C, -16C, -32C, and -48C.
The CRC check is produced on the device for the previous 8 bytes and
is required to ensure the data integrity in transmission. I don't see
why the extra check for rom[0] being non-zero is in there. Evgeniy
Polyakov didn't know either. Just for a check I unplugged the sensor,
executed a temperature conversion, and read the results. The read
was all ff's, which also failed the CRC, so it doesn't need to protect
against a disconnected sensor.
I have more extensive patches in the work, but these two trivial ones
will do for today. I would like to hear from people who use the
ds2490 USB to one wire dongle. 1 if you would be willing to test the
patches as I currently only have the one sensor on a short parisite
powered wire, 2 if there is any cheap sources for the ds2490.
Signed-off-by: David Fries <david@fries.net>
diff --git a/drivers/w1/slaves/w1_therm.c b/drivers/w1/slaves/w1_therm.c
index feed89e..112f4ec 100644
--- a/drivers/w1/slaves/w1_therm.c
+++ b/drivers/w1/slaves/w1_therm.c
@@ -204,7 +204,7 @@ static ssize_t w1_therm_read_bin(struct kobject *kobj,
crc = w1_calc_crc8(rom, 8);
- if (rom[8] == crc && rom[0])
+ if (rom[8] == crc)
verdict = 1;
}
}
--
David Fries <david@fries.net>
http://fries.net/~david/ (PGP encryption key available)
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2008-01-20 0:44 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-01-20 0:44 [PATCH 2/2] W1: w1_therm.c is flagging 0C etc as invalid David Fries
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.