diff options
author | mbr <mbr@FreeBSD.org> | 2002-09-20 15:18:13 +0000 |
---|---|---|
committer | mbr <mbr@FreeBSD.org> | 2002-09-20 15:18:13 +0000 |
commit | d4b724dda7f9c36a893fb3bf2082721073ccd516 (patch) | |
tree | c33c3c50391135f59c3d762fe20847f21f5baf89 /sys/dev/dc | |
parent | bca2116b2401b5ec867f1d037f2f921a1d429b68 (diff) | |
download | FreeBSD-src-d4b724dda7f9c36a893fb3bf2082721073ccd516.zip FreeBSD-src-d4b724dda7f9c36a893fb3bf2082721073ccd516.tar.gz |
Fix the support for the AN985/983 chips, which do not set the
RXSTATE to STOPPED, but to WAIT. This should fix hangs which
could only be solved by replugging the cable.
Submitted by: jhb
Reviewed by: phk
MFC after: 2 weeks
Diffstat (limited to 'sys/dev/dc')
-rw-r--r-- | sys/dev/dc/if_dc.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/dev/dc/if_dc.c b/sys/dev/dc/if_dc.c index e16e2f9..5c330ff 100644 --- a/sys/dev/dc/if_dc.c +++ b/sys/dev/dc/if_dc.c @@ -1366,7 +1366,8 @@ dc_setcfg(sc, media) for (i = 0; i < DC_TIMEOUT; i++) { isr = CSR_READ_4(sc, DC_ISR); if (isr & DC_ISR_TX_IDLE && - (isr & DC_ISR_RX_STATE) == DC_RXSTATE_STOPPED) + ((isr & DC_ISR_RX_STATE) == DC_RXSTATE_STOPPED || + (isr & DC_ISR_RX_STATE) == DC_RXSTATE_WAIT)) break; DELAY(10); } |