aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/pcnet32.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/drivers/net/pcnet32.c b/drivers/net/pcnet32.c
index 31e6dd04985..549a0738588 100644
--- a/drivers/net/pcnet32.c
+++ b/drivers/net/pcnet32.c
@@ -22,8 +22,8 @@
22 *************************************************************************/ 22 *************************************************************************/
23 23
24#define DRV_NAME "pcnet32" 24#define DRV_NAME "pcnet32"
25#define DRV_VERSION "1.31b" 25#define DRV_VERSION "1.31c"
26#define DRV_RELDATE "06.Oct.2005" 26#define DRV_RELDATE "01.Nov.2005"
27#define PFX DRV_NAME ": " 27#define PFX DRV_NAME ": "
28 28
29static const char *version = 29static const char *version =
@@ -262,6 +262,9 @@ static int homepna[MAX_UNITS];
262 * to allow loopback test to work unchanged. 262 * to allow loopback test to work unchanged.
263 * v1.31b 06 Oct 2005 Don Fry changed alloc_ring to show name of device 263 * v1.31b 06 Oct 2005 Don Fry changed alloc_ring to show name of device
264 * if allocation fails 264 * if allocation fails
265 * v1.31c 01 Nov 2005 Don Fry Allied Telesyn 2700/2701 FX are 100Mbit only.
266 * Force 100Mbit FD if Auto (ASEL) is selected.
267 * See Bugzilla 2669 and 4551.
265 */ 268 */
266 269
267 270
@@ -1612,12 +1615,18 @@ pcnet32_open(struct net_device *dev)
1612 val |= 0x10; 1615 val |= 0x10;
1613 lp->a.write_csr (ioaddr, 124, val); 1616 lp->a.write_csr (ioaddr, 124, val);
1614 1617
1615 /* Allied Telesyn AT 2700/2701 FX looses the link, so skip that */ 1618 /* Allied Telesyn AT 2700/2701 FX are 100Mbit only and do not negotiate */
1616 if (lp->pci_dev->subsystem_vendor == PCI_VENDOR_ID_AT && 1619 if (lp->pci_dev->subsystem_vendor == PCI_VENDOR_ID_AT &&
1617 (lp->pci_dev->subsystem_device == PCI_SUBDEVICE_ID_AT_2700FX || 1620 (lp->pci_dev->subsystem_device == PCI_SUBDEVICE_ID_AT_2700FX ||
1618 lp->pci_dev->subsystem_device == PCI_SUBDEVICE_ID_AT_2701FX)) { 1621 lp->pci_dev->subsystem_device == PCI_SUBDEVICE_ID_AT_2701FX)) {
1619 printk(KERN_DEBUG "%s: Skipping PHY selection.\n", dev->name); 1622 if (lp->options & PCNET32_PORT_ASEL) {
1620 } else { 1623 lp->options = PCNET32_PORT_FD | PCNET32_PORT_100;
1624 if (netif_msg_link(lp))
1625 printk(KERN_DEBUG "%s: Setting 100Mb-Full Duplex.\n",
1626 dev->name);
1627 }
1628 }
1629 {
1621 /* 1630 /*
1622 * 24 Jun 2004 according AMD, in order to change the PHY, 1631 * 24 Jun 2004 according AMD, in order to change the PHY,
1623 * DANAS (or DISPM for 79C976) must be set; then select the speed, 1632 * DANAS (or DISPM for 79C976) must be set; then select the speed,