Skip to content

Commit

Permalink
[PATCH] pcnet32: AT2700/2701 and Bugzilla 2699 & 4551
Browse files Browse the repository at this point in the history
This patch is a better fix for Allied Telesyn 2700/2701 FX boards than
the change made in early January this year.  It allows the user to
select the speed/duplex via module_param, but if no selection is made,
forces the speed to 100 FD.  It fixes both Bugzilla bugs 2669 and 4551.
Tested ia32 and ppc64 by myself, and by the originator of bug 2669.

Signed-off-by: Don Fry <brazilnut@us.ibm.com>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
  • Loading branch information
Don Fry authored and Jeff Garzik committed Nov 5, 2005
1 parent a88c844 commit 2964bbd
Showing 1 changed file with 16 additions and 7 deletions.
23 changes: 16 additions & 7 deletions drivers/net/pcnet32.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@
*************************************************************************/

#define DRV_NAME "pcnet32"
#define DRV_VERSION "1.31b"
#define DRV_RELDATE "06.Oct.2005"
#define DRV_VERSION "1.31c"
#define DRV_RELDATE "01.Nov.2005"
#define PFX DRV_NAME ": "

static const char *version =
Expand Down Expand Up @@ -262,6 +262,9 @@ static int homepna[MAX_UNITS];
* to allow loopback test to work unchanged.
* v1.31b 06 Oct 2005 Don Fry changed alloc_ring to show name of device
* if allocation fails
* v1.31c 01 Nov 2005 Don Fry Allied Telesyn 2700/2701 FX are 100Mbit only.
* Force 100Mbit FD if Auto (ASEL) is selected.
* See Bugzilla 2669 and 4551.
*/


Expand Down Expand Up @@ -1612,12 +1615,18 @@ pcnet32_open(struct net_device *dev)
val |= 0x10;
lp->a.write_csr (ioaddr, 124, val);

/* Allied Telesyn AT 2700/2701 FX looses the link, so skip that */
/* Allied Telesyn AT 2700/2701 FX are 100Mbit only and do not negotiate */
if (lp->pci_dev->subsystem_vendor == PCI_VENDOR_ID_AT &&
(lp->pci_dev->subsystem_device == PCI_SUBDEVICE_ID_AT_2700FX ||
lp->pci_dev->subsystem_device == PCI_SUBDEVICE_ID_AT_2701FX)) {
printk(KERN_DEBUG "%s: Skipping PHY selection.\n", dev->name);
} else {
(lp->pci_dev->subsystem_device == PCI_SUBDEVICE_ID_AT_2700FX ||
lp->pci_dev->subsystem_device == PCI_SUBDEVICE_ID_AT_2701FX)) {
if (lp->options & PCNET32_PORT_ASEL) {
lp->options = PCNET32_PORT_FD | PCNET32_PORT_100;
if (netif_msg_link(lp))
printk(KERN_DEBUG "%s: Setting 100Mb-Full Duplex.\n",
dev->name);
}
}
{
/*
* 24 Jun 2004 according AMD, in order to change the PHY,
* DANAS (or DISPM for 79C976) must be set; then select the speed,
Expand Down

0 comments on commit 2964bbd

Please sign in to comment.