summaryrefslogtreecommitdiffstats
path: root/sys/dev/dc
diff options
context:
space:
mode:
authormbr <mbr@FreeBSD.org>2002-09-20 15:18:13 +0000
committermbr <mbr@FreeBSD.org>2002-09-20 15:18:13 +0000
commitd4b724dda7f9c36a893fb3bf2082721073ccd516 (patch)
treec33c3c50391135f59c3d762fe20847f21f5baf89 /sys/dev/dc
parentbca2116b2401b5ec867f1d037f2f921a1d429b68 (diff)
downloadFreeBSD-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.c3
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);
}
OpenPOWER on IntegriCloud