hwmon: (tmp102) Fix first temperature reading
authorGuenter Roeck <linux@roeck-us.net>
Tue, 24 Oct 2017 00:36:03 +0000 (17:36 -0700)
committerGuenter Roeck <linux@roeck-us.net>
Tue, 24 Oct 2017 13:17:14 +0000 (06:17 -0700)
commitd0725439354a58f2b13b9f5234420641b662b9c4
treee7a5edbed6f1ed383bb12702c1c01b6aae326d80
parentb16918a5fd87983d421a7e2241a1314e877c4ea2
hwmon: (tmp102) Fix first temperature reading

Commit 3d8f7a89a197 ("hwmon: (tmp102) Improve handling of initial read
delay") reduced the initial temperature read delay and made it dependent
on the chip's shutdown mode. If the chip was not in shutdown mode at probe,
the read delay no longer applies.

This ignores the fact that the chip initialization changes the temperature
sensor resolution, and that the temperature register values change when
the resolution is changed. As a result, the reported temperature is twice
as high as the real temperature until the first temperature conversion
after the configuration change is complete. This can result in unexpected
behavior and, worst case, in a system shutdown. To fix the problem,
let's just always wait for a conversion to complete before reporting
a temperature.

Fixes: 3d8f7a89a197 ("hwmon: (tmp102) Improve handling of initial read delay")
Link: https://bugzilla.kernel.org/show_bug.cgi?id=197167
Reported-by: Ralf Goebel <ralf.goebel@imago-technologies.com>
Cc: Ralf Goebel <ralf.goebel@imago-technologies.com>
Reviewed-by: Jean Delvare <jdelvare@suse.de>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
drivers/hwmon/tmp102.c