From: "Seewer Philippe" <philippe.seewer@bfh.ch>
To: <tsbogend@alpha.franken.de>
Cc: <linux-kernel@vger.kernel.org>, <netdev@vger.kernel.org>
Subject: [PATCH 1/2] pcnet32: Introduce basic AT 2700/01 FTX support
Date: Fri, 17 Feb 2006 17:14:39 +0100 [thread overview]
Message-ID: <43F5F66F.6040608@bfh.ch> (raw)
This patch extends Don Fry's last patch for AT 2700/01 FX to set the
speed/fdx options for the FTX variants of these cards as well.
Additionally the option override has been moved from pcnet32_open to
pcnet32_probe1 because it's only necessary to override the options once.
Tested and works.
Patch applies to 2.6.16-rc3
Signed-off-by: Philippe Seewer <philippe.seewer@bfh.ch>
---
drivers/net/pcnet32.c | 39 ++++++++++++++++++++++++++-------------
include/linux/pci_ids.h | 2 ++
2 files changed, 28 insertions(+), 13 deletions(-)
diff -uprN -X linux-2.6.16-rc3-vanilla/Documentation/dontdiff linux-2.6.16-rc3-vanilla/drivers/net/pcnet32.c linux-2.6.16-rc3/drivers/net/pcnet32.c
--- linux-2.6.16-rc3-vanilla/drivers/net/pcnet32.c 2006-02-13 01:27:25.000000000 +0100
+++ linux-2.6.16-rc3/drivers/net/pcnet32.c 2006-02-17 15:49:41.000000000 +0100
@@ -22,8 +22,8 @@
*************************************************************************/
#define DRV_NAME "pcnet32"
-#define DRV_VERSION "1.31c"
-#define DRV_RELDATE "01.Nov.2005"
+#define DRV_VERSION "1.31d"
+#define DRV_RELDATE "17.Feb.2006"
#define PFX DRV_NAME ": "
static const char *version =
@@ -265,6 +265,8 @@ static int homepna[MAX_UNITS];
* 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.
+ * v1.31d 17 Nov 2006 Philippe Seewer Extended AT 2700/01 FX support
+ * to support FTX variants as well.
*/
@@ -1404,6 +1406,28 @@ pcnet32_probe1(unsigned long ioaddr, int
if (lp->mii)
lp->mii_if.phy_id = ((lp->a.read_bcr (ioaddr, 33)) >> 5) & 0x1f;
+ /*
+ * Override options:
+ * Allied Telesyn AT 2700/2701 FX are 100Mbit only and do not
+ * negotiate. The same goes for AT 2701 FTX on fiber and
+ * autoneg on 2700FTX seems generally broken.
+ */
+ 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 ||
+ lp->pci_dev->subsystem_device == PCI_SUBDEVICE_ID_AT_2700FTX)
+ ||
+ (lp->pci_dev->subsystem_device == PCI_SUBDEVICE_ID_AT_2701FTX &&
+ lp->mii_if.phy_id == 1)
+ )) {
+ if (lp->options & PCNET32_PORT_ASEL) {
+ lp->options = PCNET32_PORT_MII | PCNET32_PORT_FD | PCNET32_PORT_100;
+ if (pcnet32_debug & NETIF_MSG_PROBE)
+ printk(" Setting 100Mb-Full Duplex.\n");
+ }
+ }
+
+
init_timer (&lp->watchdog_timer);
lp->watchdog_timer.data = (unsigned long) dev;
lp->watchdog_timer.function = (void *) &pcnet32_watchdog;
@@ -1614,17 +1638,6 @@ pcnet32_open(struct net_device *dev)
val |= 0x10;
lp->a.write_csr (ioaddr, 124, val);
- /* 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)) {
- 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,
diff -uprN -X linux-2.6.16-rc3-vanilla/Documentation/dontdiff linux-2.6.16-rc3-vanilla/include/linux/pci_ids.h linux-2.6.16-rc3/include/linux/pci_ids.h
--- linux-2.6.16-rc3-vanilla/include/linux/pci_ids.h 2006-02-13 01:27:25.000000000 +0100
+++ linux-2.6.16-rc3/include/linux/pci_ids.h 2006-02-17 15:51:37.000000000 +0100
@@ -1538,7 +1538,9 @@
/* Allied Telesyn */
#define PCI_VENDOR_ID_AT 0x1259
#define PCI_SUBDEVICE_ID_AT_2700FX 0x2701
+#define PCI_SUBDEVICE_ID_AT_2700FTX 0x2702
#define PCI_SUBDEVICE_ID_AT_2701FX 0x2703
+#define PCI_SUBDEVICE_ID_AT_2701FTX 0x2704
#define PCI_VENDOR_ID_ESS 0x125d
#define PCI_DEVICE_ID_ESS_ESS1968 0x1968
next reply other threads:[~2006-02-17 16:14 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-02-17 16:14 Seewer Philippe [this message]
2006-02-17 18:21 ` [PATCH 1/2] pcnet32: Introduce basic AT 2700/01 FTX support Don Fry
2006-02-17 20:12 ` Seewer Philippe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=43F5F66F.6040608@bfh.ch \
--to=philippe.seewer@bfh.ch \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=tsbogend@alpha.franken.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).