On Fri, Oct 08, 2004 at 12:13:07PM -0400, John W. Linville wrote:
> Backport of current 3c59x driver (minus EISA/sysfs stuff) from 2.6 to
> 2.4. This should ease further maintenance in 2.4.
> I've been chasing some 3c59x driver problems on both 2.4.x and 2.6.x
> kernels. The 3c59x driver was pretty far out of sync between the two
> trees, so I thought it made sense to sync them back up.
Ah, if someone's looking at the 3c59x driver then please look into the
NWAY autonegotiation code - even maybe update it to use mii.c.
Currently 3c59x is rather buggy - it's a fairly simple bug. Consider
# mii-tool -v
eth0: negotiated 100baseTx-HD, link ok
product info: TDK 78Q2120 rev 11
basic mode: autonegotiation enabled
basic status: autonegotiation complete, link ok
capabilities: 100baseTx-HD 10baseT-HD
advertising: 100baseTx-HD 10baseT-HD
link partner: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
and then wonder why we end up like this:
eth0: Setting full-duplex based on MII #0 link partner capability of 45e1.
Obviously completely bogus. Luckily, there isn't that much traffic
to this card _and_ it's connected to a switch so it doesn't interfere
much with other network traffic. However, it is _dog_ slow when doing
large transfers to/from it.
04:00.0 Ethernet controller: 3Com Corporation 3c575 [Megahertz] 10/100 LAN
CardBus (rev 01)
aka 3CCFE575BT. The BT version only has a HD-capable MII transceiver,
whereas the CT version has a FD-capable MII transceiver fitted.
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 PCMCIA - http://pcmcia.arm.linux.org.uk/
2.6 Serial core