summaryrefslogtreecommitdiffstats
path: root/drivers/net/pcmcia
diff options
context:
space:
mode:
authorKomuro <komurojun-mbn@nifty.com>2005-10-28 22:09:54 +0200
committerJeff Garzik <jgarzik@pobox.com>2005-10-28 22:09:54 +0200
commitd89a64bedf956ef0b406018a7cb76e027fe3e751 (patch)
tree3e711ac5e3a5f033558d44748af0e0ac9fd2652d /drivers/net/pcmcia
parent[PATCH] ibmveth fix failed addbuf (diff)
downloadlinux-d89a64bedf956ef0b406018a7cb76e027fe3e751.tar.xz
linux-d89a64bedf956ef0b406018a7cb76e027fe3e751.zip
pcnet_cs: fix mii init code for older DL10019 based cards
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>
Diffstat (limited to 'drivers/net/pcmcia')
-rw-r--r--drivers/net/pcmcia/pcnet_cs.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/pcmcia/pcnet_cs.c b/drivers/net/pcmcia/pcnet_cs.c
index 9f22d138e3ad..818c185d6438 100644
--- a/drivers/net/pcmcia/pcnet_cs.c
+++ b/drivers/net/pcmcia/pcnet_cs.c
@@ -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);
}
}