/* In this order: vendor, device, subvendor, subdevice, class, class_mask,
* driver_data
- * Note: for driver_data we put the device's name
* If you have an update for this please contact prism54-devel@prism54.org
* The latest list can be found at http://prism54.org/supported_cards.php */
static const struct pci_device_id prism54_id_tbl[] = {
+ /* 3COM 3CRWE154G72 Wireless LAN adapter */
{
PCIVENDOR_3COM, PCIDEVICE_3COM6001,
PCIVENDOR_3COM, PCIDEVICE_3COM6001,
- 0, 0,
- (unsigned long) "3COM 3CRWE154G72 Wireless LAN adapter"},
+ 0, 0, 0
+ },
+
+ /* D-Link Air Plus Xtreme G A1 - DWL-g650 A1 */
{
PCIVENDOR_INTERSIL, PCIDEVICE_ISL3890,
PCIVENDOR_DLINK, 0x3202UL,
- 0, 0,
- (unsigned long) "D-Link Air Plus Xtreme G A1 - DWL-g650 A1"},
+ 0, 0, 0
+ },
+
+ /* I-O Data WN-G54/CB - WN-G54/CB */
{
PCIVENDOR_INTERSIL, PCIDEVICE_ISL3890,
PCIVENDOR_IODATA, 0xd019UL,
- 0, 0,
- (unsigned long) "I-O Data WN-G54/CB - WN-G54/CB"},
+ 0, 0, 0
+ },
+
+ /* Netgear WG511 */
{
PCIVENDOR_INTERSIL, PCIDEVICE_ISL3890,
PCIVENDOR_NETGEAR, 0x4800UL,
- 0, 0,
- (unsigned long) "Netgear WG511"},
+ 0, 0, 0
+ },
+
+ /* Tekram Technology clones, Allnet, Netcomm, Zyxel */
{
PCIVENDOR_INTERSIL, PCIDEVICE_ISL3890,
- PCIVENDOR_I4, 0x0020UL,
- 0, 0,
- (unsigned long) "PLANEX GW-DS54G"},
+ PCIVENDOR_TTL, 0x1605UL,
+ 0, 0, 0
+ },
+
+ /* SMC2802W */
{
PCIVENDOR_INTERSIL, PCIDEVICE_ISL3890,
PCIVENDOR_SMC, 0x2802UL,
- 0, 0,
- (unsigned long) "EZ Connect g 2.4GHz 54 Mbps Wireless PCI Card - SMC2802W"},
+ 0, 0, 0
+ },
+
+ /* SMC2835W */
{
PCIVENDOR_INTERSIL, PCIDEVICE_ISL3890,
PCIVENDOR_SMC, 0x2835UL,
- 0, 0,
- (unsigned long) "EZ Connect g 2.4GHz 54 Mbps Wireless Cardbus Adapter - SMC2835W"},
+ 0, 0, 0
+ },
+
+ /* Corega CG-WLCB54GT */
{
PCIVENDOR_INTERSIL, PCIDEVICE_ISL3890,
- PCIVENDOR_INTERSIL, 0x0000UL, /* This was probably a bogus reading... */
- 0, 0,
- (unsigned long) "SparkLAN WL-850F"},
+ PCIVENDOR_ATI, 0xc104UL,
+ 0, 0, 0
+ },
+
+ /* I4 Z-Com XG-600 */
{
PCIVENDOR_INTERSIL, PCIDEVICE_ISL3890,
PCIVENDOR_I4, 0x0014UL,
- 0, 0,
- (unsigned long) "I4 Z-Com XG-600"},
+ 0, 0, 0
+ },
+
+ /* I4 Z-Com XG-900 and clones Macer, Ovislink, Planex, Peabird, */
+ /* Sitecom, Xterasys */
{
PCIVENDOR_INTERSIL, PCIDEVICE_ISL3890,
PCIVENDOR_I4, 0x0020UL,
- 0, 0,
- (unsigned long) "I4 Z-Com XG-900/PLANEX GW-DS54G"},
+ 0, 0, 0
+ },
+
+ /* SMC 2802W V2 */
{
PCIVENDOR_INTERSIL, PCIDEVICE_ISL3890,
PCIVENDOR_ACCTON, 0xee03UL,
- 0, 0,
- (unsigned long) "SMC 2802Wv2"},
+ 0, 0, 0
+ },
+
+ /* SMC 2835W V2 */
{
PCIVENDOR_INTERSIL, PCIDEVICE_ISL3890,
PCIVENDOR_SMC, 0xa835UL,
- 0, 0,
- (unsigned long) "SMC 2835Wv2"},
+ 0, 0, 0
+ },
+
+ /* Intersil PRISM Indigo Wireless LAN adapter */
{
PCIVENDOR_INTERSIL, PCIDEVICE_ISL3877,
PCI_ANY_ID, PCI_ANY_ID,
- 0, 0,
- (unsigned long) "Intersil PRISM Indigo Wireless LAN adapter"},
- { /* Default */
+ 0, 0, 0
+ },
+
+ /* Intersil PRISM Duette/Prism GT Wireless LAN adapter */
+ /* Default */
+ {
PCIVENDOR_INTERSIL, PCIDEVICE_ISL3890,
PCI_ANY_ID, PCI_ANY_ID,
- 0, 0,
- (unsigned long) "Intersil PRISM Duette/Prism GT Wireless LAN adapter"},
- {0,}
+ 0, 0, 0
+ },
+
+ /* End of list */
+ {0,0,0,0,0,0,0}
};
/* register the device with the Hotplug facilities of the kernel */
{
islpci_private *priv;
char *modelp;
+ int notwork = 0;
priv = netdev_priv(ndev);
switch (priv->pdev->subsystem_device) {
case PCIDEVICE_ISL3877:
modelp = "PRISM Indigo";
break;
+ case PCIDEVICE_ISL3886:
+ modelp = "PRISM Javelin / Xbow";
+ break;
case PCIDEVICE_3COM6001:
modelp = "3COM 3CRWE154G72";
break;
break;
case 0xee03UL:
modelp = "SMC2802W V2";
+ notwork = 1;
break;
case 0x2835UL:
modelp = "SMC2835W";
break;
case 0xa835UL:
modelp = "SMC2835W V2";
+ notwork = 1;
+ break;
+ case 0xc104UL:
+ modelp = "CG-WLCB54GT";
+ break;
+ case 0x1605UL:
+ modelp = "Tekram Technology clone";
break;
/* Let's leave this one out for now since it seems bogus/wrong
* Even if the manufacturer did use 0x0000UL it may not be correct
/* We have two reported for the one below :( */
case 0x0014UL:
- modelp = "XG-600";
+ modelp = "I4 Z-Com XG-600 and clones";
break;
case 0x0020UL:
- modelp = "XG-900/GW-DS54G";
+ modelp = "I4 Z-Com XG-900 and clones";
break;
/* Default it */
/*
}
printk(KERN_DEBUG "%s: %s driver detected card model: %s\n",
ndev->name, DRV_NAME, modelp);
+ if ( notwork ) {
+ printk(KERN_DEBUG "%s: %s Warning - This may not work\n",
+ ndev->name, DRV_NAME);
+ }
return;
}
* Writing zero to both these two registers will disable both timeouts and
* *can* solve problems caused by devices that are slow to respond.
*/
+ /* I am taking these out, we should not be poking around in the
+ * programmable timers - MSW
+ */
+/* Do not zero the programmable timers
pci_write_config_byte(pdev, 0x40, 0);
pci_write_config_byte(pdev, 0x41, 0);
+*/
/* request the pci device I/O regions */
rvalue = pci_request_regions(pdev, DRV_NAME);
DEBUG(SHOW_TRACING, "%s: pci_set_master(pdev)\n", DRV_NAME);
pci_set_master(pdev);
+ /* enable MWI */
+ pci_set_mwi(pdev);
+
/* setup the network device interface and its structure */
if (!(ndev = islpci_setup(pdev))) {
/* error configuring the driver as a network device */