pcnet_cs: fix mii init code for older DL10019 based cards
authorKomuro <komurojun-mbn@nifty.com>
Fri, 28 Oct 2005 20:09:54 +0000 (16:09 -0400)
committerJeff Garzik <jgarzik@pobox.com>
Fri, 28 Oct 2005 20:09:54 +0000 (16:09 -0400)
Some older DL10019 based cards need to setup
the auto-negotiation-advertisement register
to advertise 100Full,100Half,10Full and 10Half.

Signed-off-by: <komurojun-mbn@nifty.com>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
drivers/net/pcmcia/pcnet_cs.c

index 9f22d138e3ade94237f3e24d678b41c7c24cc356..818c185d643880fc1a5f15ac9e51cee287f69f11 100644 (file)
@@ -1020,6 +1020,12 @@ static void set_misc_reg(struct net_device *dev)
        } else {
            outb(full_duplex ? 4 : 0, nic_base + DLINK_DIAG);
        }
+    } else if (info->flags & IS_DL10019) {
+       /* Advertise 100F, 100H, 10F, 10H */
+       mdio_write(nic_base + DLINK_GPIO, info->eth_phy, 4, 0x01e1);
+       /* Restart MII autonegotiation */
+       mdio_write(nic_base + DLINK_GPIO, info->eth_phy, 0, 0x0000);
+       mdio_write(nic_base + DLINK_GPIO, info->eth_phy, 0, 0x1200);
     }
 }