Messages in this thread Patch in this message |  | | Date | 13 May 2002 03:20:37 -0000 | From | eric@brouhaha ... | Subject | patch to acenic driver for Farallon PN9100-T Gigabit Ethernet (copper) |
| |
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 +++ linux/drivers/net/acenic.c Sun May 12 13:56:04 2002 @@ -114,6 +114,10 @@ #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 #endif @@ -138,6 +142,9 @@ */ { 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, }, { } @@ -603,6 +610,8 @@ */ !((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))) continue; @@ -701,6 +710,13 @@ 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 the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |