WSL2-Linux-Kernel/drivers/w1/slaves
Stefan Wahren cb263e9b6d w1: w1_therm: fix locking behavior in convert_t
[ Upstream commit dca5480ab7 ]

The commit 67b392f7b8 ("w1_therm: optimizing temperature read timings")
accidentially inverted the logic for lock handling of the bus mutex.

Before:
  pullup -> release lock before sleep
  no pullup -> release lock after sleep

After:
  pullup -> release lock after sleep
  no pullup -> release lock before sleep

This cause spurious measurements of 85 degree (powerup value) on the
Tarragon board with connected 1-w temperature sensor
(w1_therm.w1_strong_pull=0).

In the meantime a new feature for polling the conversion
completion has been integrated in these branches with
commit 021da53e65 ("w1: w1_therm: Add sysfs entries to control
conversion time and driver features"). But this feature isn't
available for parasite power mode, so handle this separately.

Link: https://lore.kernel.org/regressions/2023042645-attentive-amends-7b0b@gregkh/T/
Fixes: 67b392f7b8 ("w1_therm: optimizing temperature read timings")
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Link: https://lore.kernel.org/r/20230427112152.12313-1-stefan.wahren@i2se.com
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-07-23 13:47:20 +02:00
..
Kconfig
Makefile
w1_ds28e04.c
w1_ds28e17.c
w1_ds250x.c
w1_ds2405.c
w1_ds2406.c
w1_ds2408.c
w1_ds2413.c
w1_ds2423.c
w1_ds2430.c
w1_ds2431.c
w1_ds2433.c
w1_ds2438.c
w1_ds2780.c
w1_ds2780.h
w1_ds2781.c
w1_ds2781.h
w1_ds2805.c
w1_smem.c
w1_therm.c w1: w1_therm: fix locking behavior in convert_t 2023-07-23 13:47:20 +02:00