linux/drivers/w1/slaves
Jean-Francois Dagenais 49695ac468 w1: ds2408: reset on output_write retry with readback
When we have success in 'Channel Access Write' but reading back latch
states fails, a write is retried without doing a proper slave reset.
This leads to protocol errors as the slave treats the next 'Channel
Access Write' as the continuation of previous command.

This commit is fixing this by making sure if the retry loop re-runs, a
reset is performed, whatever the failure (CONFIRM_BYTE or the read
back).

The loop was quite due for a cleanup and this change mandated it. By
isolating the CONFIG_W1_SLAVE_DS2408_READBACK case into it's own
function, we vastly reduce the visual and branching(runtime and
compile-time) noise.

Reported-by: Mariusz Bialonczyk <manio@skyboo.net>
Tested-by: Mariusz Bialonczyk <manio@skyboo.net>
Signed-off-by: Jean-Francois Dagenais <jeff.dagenais@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-04-25 19:41:27 +02:00
..
Kconfig power: supply: ds2760_battery: merge ds2760 supply driver with its w1 slave companion 2018-07-11 18:09:09 +02:00
Makefile power: supply: ds2760_battery: merge ds2760 supply driver with its w1 slave companion 2018-07-11 18:09:09 +02:00
w1_ds28e04.c w1: Add subsystem kernel public interface 2017-06-09 11:54:54 +02:00
w1_ds28e17.c add w1_ds28e17 driver for the DS28E17 Onewire to I2C master bridge 2017-10-04 10:29:22 +02:00
w1_ds2405.c w1: Add subsystem kernel public interface 2017-06-09 11:54:54 +02:00
w1_ds2406.c w1: Add subsystem kernel public interface 2017-06-09 11:54:54 +02:00
w1_ds2408.c w1: ds2408: reset on output_write retry with readback 2019-04-25 19:41:27 +02:00
w1_ds2413.c w1: Add subsystem kernel public interface 2017-06-09 11:54:54 +02:00
w1_ds2423.c w1: Add subsystem kernel public interface 2017-06-09 11:54:54 +02:00
w1_ds2431.c w1: Add subsystem kernel public interface 2017-06-09 11:54:54 +02:00
w1_ds2433.c w1: Add subsystem kernel public interface 2017-06-09 11:54:54 +02:00
w1_ds2438.c w1: IAD Register is yet readable trough iad sys file. Fix snprintf (%u for unsigned, count for max size). 2018-10-15 20:50:32 +02:00
w1_ds2780.c w1: Add subsystem kernel public interface 2017-06-09 11:54:54 +02:00
w1_ds2780.h W1: split master mutex to avoid deadlocks. 2012-06-13 16:38:40 -07:00
w1_ds2781.c w1: Add subsystem kernel public interface 2017-06-09 11:54:54 +02:00
w1_ds2781.h W1: split master mutex to avoid deadlocks. 2012-06-13 16:38:40 -07:00
w1_ds2805.c drivers: w1: Add 1w slave driver for DS28E05 EEPROM 2017-08-28 17:23:29 +02:00
w1_smem.c w1: Add subsystem kernel public interface 2017-06-09 11:54:54 +02:00
w1_therm.c w1: keep balance of mutex locks and refcnts 2017-11-08 14:26:50 +01:00