Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 19 Sep 2002 16:59:04 -0400 (EDT)
From:      John Baldwin <jhb@FreeBSD.org>
To:        mckay@FreeBSD.org
Cc:        current@FreeBSD.org
Subject:   dc(4) patch
Message-ID:  <XFMail.20020919165904.jhb@FreeBSD.org>

next in thread | raw e-mail | index | archive | help
A while ago I started having problems with a dc(4) cardbus card that
I hadn't had before.  Lots of failures to force tx and rx to idle
state resulting in the card eventually hanging under load and
basically being worthless until I ejected it and reinserted it.
ifconfig up/down, etc. didn't help.  So I bought a new dc(4) cardbus
card and it had the same problems.  First card:

dc0: <Abocom FE2500 10/100BaseTX> port 0x1100-0x11ff mem 0x88002000-0x880023ff irq 11 at device 0.0
on cardbus0

(really a LinkSys PCMP100 or some such)  Second card:

dc0: <Accton EN2242 MiniPCI 10/100BaseTX> port 0x1100-0x11ff mem 0x88002000-0x880023ff irq 11 at
device 0.0 on cardbus0

(really a SpeedStream SS1012).  The patch below fixed the hangs
on both cards:

--- if_dc.c     4 Sep 2002 18:14:17 -0000       1.77
+++ if_dc.c     19 Sep 2002 20:57:03 -0000
@@ -1366,7 +1370,8 @@
                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);
                }

The automatic TX underrun recovery stuff didn't make a bit of difference
for the SpeedStream card FWIW.  Also, unlike one of the PR's which claimed
that the SpeedStream SS1020 (PCI adapter rather than cardbus card), the
dc(4) driver read the right MAC address just fine w/o the need for any
changes.

-- 

John Baldwin <john@baldwin.cx>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.20020919165904.jhb>