w1: fix occasional enumeration failure

Sometimes enumeration fails (about 1 in 50 times on my custom board).

The underlying reason is probably electrical but Linux does not have
the problem.

Comparing the Linux / u-boot implementations shows that Linux
retries the error case whereas u-boot aborts early.

Removing the early abort in u-boot fixes the problem.

Signed-off-by: Martin Fuzzey <martin.fuzzey@flowbird.group>
This commit is contained in:
Martin Fuzzey 2018-11-23 10:53:06 +01:00 committed by Tom Rini
parent 57dbc15143
commit b95938117c

View file

@ -84,10 +84,6 @@ static int w1_enumerate(struct udevice *bus)
rn |= (tmp64 << i);
}
/* last device or error, aborting here */
if ((triplet_ret & 0x03) == 0x03)
last_device = true;
if ((triplet_ret & 0x03) != 0x03) {
if (desc_bit == last_zero || last_zero < 0) {
last_device = 1;