patch to acenic driver for Farallon PN9100-T Gigabit Ethernet (copper)

patch to acenic driver for Farallon PN9100-T Gigabit Ethernet (copper)

Post by e.. » Tue, 14 May 2002 12:30:05



I recently got some Farallon Netline PN9100-T cards.  They appear to be
the copper equivalent of the fibre PN9000-SX, which Linux supports, and
use the same Alteon chipset.  These cards were quite pricey when new,
but are now obsolete and widely available inexpensively at clearance
sales.  Note that Farallon is now part of Proxim.  Their web page for
this card is:
    http://www.proxim.com/products/all/netlinecard/pn9100t/index.html

The acenic driver didn't claim the card because it uses the Alteon vendor
ID with the device ID 0x00fa.  After adding those IDs to the table and
switch statement, I was pleased to find that the card works.  (At 100 Mbps,
I don't yet have a gigabit switch so I can't test that.)

Below find a trivial patch against the 2.4.18 kernel to add support for
this card.  Since it only adds new vendor/device ID support, this patch
should work (with only minor alterations if any) on other kernel
versions.

Eric Smith

--- linux/drivers/net/acenic.c.orig     Fri May 10 14:47:26 2002

 #ifndef PCI_DEVICE_ID_FARALLON_PN9000SX
 #define PCI_DEVICE_ID_FARALLON_PN9000SX        0x1a
 #endif
+#ifndef PCI_DEVICE_ID_FARALLON_PN9100T
+#define PCI_DEVICE_ID_FARALLON_PN9100T  0xfa
+#endif
+
 #ifndef PCI_VENDOR_ID_SGI
 #define PCI_VENDOR_ID_SGI              0x10a9

         */
        { PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_FARALLON_PN9000SX,
          PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_NETWORK_ETHERNET << 8, 0xffff00, },
+       { PCI_VENDOR_ID_ALTEON, PCI_DEVICE_ID_FARALLON_PN9100T,
+         PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_NETWORK_ETHERNET << 8, 0xffff00, },
+
        { PCI_VENDOR_ID_SGI, PCI_DEVICE_ID_SGI_ACENIC,
          PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_NETWORK_ETHERNET << 8, 0xffff00, },

                 */
                    !((pdev->vendor == PCI_VENDOR_ID_DEC) &&
                      (pdev->device == PCI_DEVICE_ID_FARALLON_PN9000SX)) &&
+                   !((pdev->vendor == PCI_VENDOR_ID_ALTEON) &&
+                     (pdev->device == PCI_DEVICE_ID_FARALLON_PN9100T)) &&
                    !((pdev->vendor == PCI_VENDOR_ID_SGI) &&
                      (pdev->device == PCI_DEVICE_ID_SGI_ACENIC)))

                switch(pdev->vendor) {
                case PCI_VENDOR_ID_ALTEON:
+                       if (pdev->device == PCI_DEVICE_ID_FARALLON_PN9100T) {
+                               strncpy(ap->name, "Farallon PN9100-T "
+                                       "Gigabit Ethernet", sizeof (ap->name));
+                               printk(KERN_INFO "%s: Farallon PN9100-T ",
+                                      dev->name);
+                               break;
+                       }
                        strncpy(ap->name, "AceNIC Gigabit Ethernet",
                                sizeof (ap->name));
                        printk(KERN_INFO "%s: Alteon AceNIC ", dev->name);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in

More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/