Commit df950828 authored by Komuro's avatar Komuro Committed by David S. Miller

dl2k: add Sundance/Tamarack TC902x Gigabit Ethernet Adapter support

Actually, D-Link modified the VendorID/ProductID of the TC902x.
The TC902x is the original chipset.
Signed-off-by: default avatarKomuro <komurojun-mbn@nifty.com>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent b6aec32a
...@@ -1995,14 +1995,15 @@ config ACENIC_OMIT_TIGON_I ...@@ -1995,14 +1995,15 @@ config ACENIC_OMIT_TIGON_I
The safe and default value for this is N. The safe and default value for this is N.
config DL2K config DL2K
tristate "D-Link DL2000-based Gigabit Ethernet support" tristate "DL2000/TC902x-based Gigabit Ethernet support"
depends on PCI depends on PCI
select CRC32 select CRC32
help help
This driver supports D-Link 2000-based gigabit ethernet cards, which This driver supports DL2000/TC902x-based Gigabit ethernet cards,
includes which includes
D-Link DGE-550T Gigabit Ethernet Adapter. D-Link DGE-550T Gigabit Ethernet Adapter.
D-Link DL2000-based Gigabit Ethernet Adapter. D-Link DL2000-based Gigabit Ethernet Adapter.
Sundance/Tamarack TC902x Gigabit Ethernet Adapter.
To compile this driver as a module, choose M here: the To compile this driver as a module, choose M here: the
module will be called dl2k. module will be called dl2k.
......
...@@ -10,9 +10,9 @@ ...@@ -10,9 +10,9 @@
(at your option) any later version. (at your option) any later version.
*/ */
#define DRV_NAME "D-Link DL2000-based linux driver" #define DRV_NAME "DL2000/TC902x-based linux driver"
#define DRV_VERSION "v1.18" #define DRV_VERSION "v1.19"
#define DRV_RELDATE "2006/06/27" #define DRV_RELDATE "2007/08/12"
#include "dl2k.h" #include "dl2k.h"
#include <linux/dma-mapping.h> #include <linux/dma-mapping.h>
...@@ -339,17 +339,24 @@ parse_eeprom (struct net_device *dev) ...@@ -339,17 +339,24 @@ parse_eeprom (struct net_device *dev)
#ifdef MEM_MAPPING #ifdef MEM_MAPPING
ioaddr = dev->base_addr; ioaddr = dev->base_addr;
#endif #endif
/* Check CRC */ if (np->pdev->vendor == PCI_VENDOR_ID_DLINK) { /* D-Link Only */
crc = ~ether_crc_le (256 - 4, sromdata); /* Check CRC */
if (psrom->crc != crc) { crc = ~ether_crc_le (256 - 4, sromdata);
printk (KERN_ERR "%s: EEPROM data CRC error.\n", dev->name); if (psrom->crc != crc) {
return -1; printk (KERN_ERR "%s: EEPROM data CRC error.\n",
dev->name);
return -1;
}
} }
/* Set MAC address */ /* Set MAC address */
for (i = 0; i < 6; i++) for (i = 0; i < 6; i++)
dev->dev_addr[i] = psrom->mac_addr[i]; dev->dev_addr[i] = psrom->mac_addr[i];
if (np->pdev->vendor != PCI_VENDOR_ID_DLINK) {
return 0;
}
/* Parse Software Information Block */ /* Parse Software Information Block */
i = 0x30; i = 0x30;
psib = (u8 *) sromdata; psib = (u8 *) sromdata;
......
...@@ -692,6 +692,7 @@ struct netdev_private { ...@@ -692,6 +692,7 @@ struct netdev_private {
static const struct pci_device_id rio_pci_tbl[] = { static const struct pci_device_id rio_pci_tbl[] = {
{0x1186, 0x4000, PCI_ANY_ID, PCI_ANY_ID, }, {0x1186, 0x4000, PCI_ANY_ID, PCI_ANY_ID, },
{0x13f0, 0x1021, PCI_ANY_ID, PCI_ANY_ID, },
{ } { }
}; };
MODULE_DEVICE_TABLE (pci, rio_pci_tbl); MODULE_DEVICE_TABLE (pci, rio_pci_tbl);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment