Commit 549b7190 authored by Jeff Garzik's avatar Jeff Garzik

eepro100 net driver fix:

Second half of fix (first half of which added an embarrassingly 
long time ago) which works around hardware bug at 10 mbit.
Contributors: Steve Parker, Arjan van de Ven
parent c026ee55
...@@ -833,6 +833,10 @@ static int speedo_found1(struct pci_dev *pdev, ...@@ -833,6 +833,10 @@ static int speedo_found1(struct pci_dev *pdev,
sp->phy[0] = eeprom[6]; sp->phy[0] = eeprom[6];
sp->phy[1] = eeprom[7]; sp->phy[1] = eeprom[7];
sp->rx_bug = (eeprom[3] & 0x03) == 3 ? 0 : 1; sp->rx_bug = (eeprom[3] & 0x03) == 3 ? 0 : 1;
if (((pdev->device > 0x1030 && (pdev->device < 0x1039)))
|| (pdev->device == 0x2449)) {
sp->chip_id = 1;
}
if (sp->rx_bug) if (sp->rx_bug)
printk(KERN_INFO " Receiver lock-up workaround activated.\n"); printk(KERN_INFO " Receiver lock-up workaround activated.\n");
...@@ -1375,7 +1379,7 @@ speedo_start_xmit(struct sk_buff *skb, struct net_device *dev) ...@@ -1375,7 +1379,7 @@ speedo_start_xmit(struct sk_buff *skb, struct net_device *dev)
/* workaround for hardware bug on 10 mbit half duplex */ /* workaround for hardware bug on 10 mbit half duplex */
if ((sp->partner==0) && (sp->chip_id==1)) { if ((sp->partner == 0) || (sp->chip_id == 1)) {
wait_for_cmd_done(ioaddr + SCBCmd); wait_for_cmd_done(ioaddr + SCBCmd);
outb(0 , ioaddr + SCBCmd); outb(0 , ioaddr + SCBCmd);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment