sis900: phy for FoxCon motherboard
authorJames Cameron <james.cameron@hp.com>
Wed, 10 May 2006 20:33:29 +0000 (13:33 -0700)
committerStephen Hemminger <shemminger@osdl.org>
Wed, 10 May 2006 21:04:52 +0000 (14:04 -0700)
661FX7MI-S motherboard which uses the SiS 661FX chipset.  The patch adds
an entry to mii_chip_info for the transceiver.

The PHY ids were found using the sis900_c_122.diff patch from
http://brownhat.org/sis900.html but that patch didn't solve the problem,
because the PHY at address 1 was already being chosen.

Without my patch, when bursts of packets arrive from other hosts on a
LAN, the interface dropped one roughly 10% of the time, causing
retransmits.  There were fifth second pauses in refresh of large xterms,
and it made Netrek suck.  I can provide further test data.

Workaround in lieu of patch is to use mii-tool to advertise
100baseTx-HD, then force renegotiation.

I wasn't able to identify the actual transceiver, so the description
field is a guess.

This patch is similar to Artur Skawina's patch:
http://marc.theaimsgroup.com/?l=linux-netdev&m=114297516729079&w=2

I'm not sure, but I wonder if it means the default behaviour should be
changed, so as to better handle future transceivers.

Diff is against 2.6.16.13.

Signed-off-by: James Cameron <james.cameron@hp.com>
Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
drivers/net/sis900.c

index b82191d2bee127415d14b3e65075af0d7f702421..f5a3bf4d959a458f1fd1930be72d29c6f186a0d9 100644 (file)
@@ -127,6 +127,7 @@ static const struct mii_chip_info {
 } mii_chip_table[] = {
        { "SiS 900 Internal MII PHY",           0x001d, 0x8000, LAN },
        { "SiS 7014 Physical Layer Solution",   0x0016, 0xf830, LAN },
+       { "SiS 900 on Foxconn 661 7MI",         0x0143, 0xBC70, LAN },
        { "Altimata AC101LF PHY",               0x0022, 0x5520, LAN },
        { "ADM 7001 LAN PHY",                   0x002e, 0xcc60, LAN },
        { "AMD 79C901 10BASE-T PHY",            0x0000, 0x6B70, LAN },