diff options
Diffstat (limited to 'drivers/net/pcmcia')
-rw-r--r-- | drivers/net/pcmcia/3c574_cs.c | 8 | ||||
-rw-r--r-- | drivers/net/pcmcia/3c589_cs.c | 12 | ||||
-rw-r--r-- | drivers/net/pcmcia/axnet_cs.c | 29 | ||||
-rw-r--r-- | drivers/net/pcmcia/com20020_cs.c | 7 | ||||
-rw-r--r-- | drivers/net/pcmcia/fmvj18x_cs.c | 30 | ||||
-rw-r--r-- | drivers/net/pcmcia/ibmtr_cs.c | 11 | ||||
-rw-r--r-- | drivers/net/pcmcia/nmclan_cs.c | 8 | ||||
-rw-r--r-- | drivers/net/pcmcia/pcnet_cs.c | 213 | ||||
-rw-r--r-- | drivers/net/pcmcia/smc91c92_cs.c | 320 | ||||
-rw-r--r-- | drivers/net/pcmcia/xirc2ps_cs.c | 28 |
10 files changed, 559 insertions, 107 deletions
diff --git a/drivers/net/pcmcia/3c574_cs.c b/drivers/net/pcmcia/3c574_cs.c index c6e8b25f9685..f0fc04bd37c4 100644 --- a/drivers/net/pcmcia/3c574_cs.c +++ b/drivers/net/pcmcia/3c574_cs.c | |||
@@ -1286,6 +1286,13 @@ static int el3_close(struct net_device *dev) | |||
1286 | return 0; | 1286 | return 0; |
1287 | } | 1287 | } |
1288 | 1288 | ||
1289 | static struct pcmcia_device_id tc574_ids[] = { | ||
1290 | PCMCIA_DEVICE_MANF_CARD(0x0101, 0x0574), | ||
1291 | PCMCIA_MFC_DEVICE_CIS_MANF_CARD(0, 0x0101, 0x0556, "3CCFEM556.cis"), | ||
1292 | PCMCIA_DEVICE_NULL, | ||
1293 | }; | ||
1294 | MODULE_DEVICE_TABLE(pcmcia, tc574_ids); | ||
1295 | |||
1289 | static struct pcmcia_driver tc574_driver = { | 1296 | static struct pcmcia_driver tc574_driver = { |
1290 | .owner = THIS_MODULE, | 1297 | .owner = THIS_MODULE, |
1291 | .drv = { | 1298 | .drv = { |
@@ -1293,6 +1300,7 @@ static struct pcmcia_driver tc574_driver = { | |||
1293 | }, | 1300 | }, |
1294 | .attach = tc574_attach, | 1301 | .attach = tc574_attach, |
1295 | .detach = tc574_detach, | 1302 | .detach = tc574_detach, |
1303 | .id_table = tc574_ids, | ||
1296 | }; | 1304 | }; |
1297 | 1305 | ||
1298 | static int __init init_tc574(void) | 1306 | static int __init init_tc574(void) |
diff --git a/drivers/net/pcmcia/3c589_cs.c b/drivers/net/pcmcia/3c589_cs.c index 89abdda1d343..8fa1b5f0fb68 100644 --- a/drivers/net/pcmcia/3c589_cs.c +++ b/drivers/net/pcmcia/3c589_cs.c | |||
@@ -1057,6 +1057,17 @@ static int el3_close(struct net_device *dev) | |||
1057 | return 0; | 1057 | return 0; |
1058 | } | 1058 | } |
1059 | 1059 | ||
1060 | static struct pcmcia_device_id tc589_ids[] = { | ||
1061 | PCMCIA_MFC_DEVICE_MANF_CARD(0, 0x0101, 0x0562), | ||
1062 | PCMCIA_MFC_DEVICE_PROD_ID1(0, "Motorola MARQUIS", 0xf03e4e77), | ||
1063 | PCMCIA_DEVICE_MANF_CARD(0x0101, 0x0589), | ||
1064 | PCMCIA_DEVICE_PROD_ID12("Farallon", "ENet", 0x58d93fc4, 0x992c2202), | ||
1065 | PCMCIA_MFC_DEVICE_CIS_MANF_CARD(0, 0x0101, 0x0035, "3CXEM556.cis"), | ||
1066 | PCMCIA_MFC_DEVICE_CIS_MANF_CARD(0, 0x0101, 0x003d, "3CXEM556.cis"), | ||
1067 | PCMCIA_DEVICE_NULL, | ||
1068 | }; | ||
1069 | MODULE_DEVICE_TABLE(pcmcia, tc589_ids); | ||
1070 | |||
1060 | static struct pcmcia_driver tc589_driver = { | 1071 | static struct pcmcia_driver tc589_driver = { |
1061 | .owner = THIS_MODULE, | 1072 | .owner = THIS_MODULE, |
1062 | .drv = { | 1073 | .drv = { |
@@ -1064,6 +1075,7 @@ static struct pcmcia_driver tc589_driver = { | |||
1064 | }, | 1075 | }, |
1065 | .attach = tc589_attach, | 1076 | .attach = tc589_attach, |
1066 | .detach = tc589_detach, | 1077 | .detach = tc589_detach, |
1078 | .id_table = tc589_ids, | ||
1067 | }; | 1079 | }; |
1068 | 1080 | ||
1069 | static int __init init_tc589(void) | 1081 | static int __init init_tc589(void) |
diff --git a/drivers/net/pcmcia/axnet_cs.c b/drivers/net/pcmcia/axnet_cs.c index 853b586e481a..23ce77b1d5b0 100644 --- a/drivers/net/pcmcia/axnet_cs.c +++ b/drivers/net/pcmcia/axnet_cs.c | |||
@@ -850,6 +850,34 @@ static void block_output(struct net_device *dev, int count, | |||
850 | outsw(nic_base + AXNET_DATAPORT, buf, count>>1); | 850 | outsw(nic_base + AXNET_DATAPORT, buf, count>>1); |
851 | } | 851 | } |
852 | 852 | ||
853 | static struct pcmcia_device_id axnet_ids[] = { | ||
854 | PCMCIA_PFC_DEVICE_MANF_CARD(0, 0x016c, 0x0081), | ||
855 | PCMCIA_DEVICE_MANF_CARD(0x018a, 0x0301), | ||
856 | PCMCIA_DEVICE_MANF_CARD(0x026f, 0x0301), | ||
857 | PCMCIA_DEVICE_MANF_CARD(0x026f, 0x0303), | ||
858 | PCMCIA_DEVICE_MANF_CARD(0x026f, 0x0309), | ||
859 | PCMCIA_DEVICE_MANF_CARD(0x0274, 0x1106), | ||
860 | PCMCIA_DEVICE_MANF_CARD(0x8a01, 0xc1ab), | ||
861 | PCMCIA_DEVICE_PROD_ID124("Fast Ethernet", "16-bit PC Card", "AX88190", 0xb4be14e3, 0x9a12eb6a, 0xab9be5ef), | ||
862 | PCMCIA_DEVICE_PROD_ID12("ASIX", "AX88190", 0x0959823b, 0xab9be5ef), | ||
863 | PCMCIA_DEVICE_PROD_ID12("Billionton", "LNA-100B", 0x552ab682, 0xbc3b87e1), | ||
864 | PCMCIA_DEVICE_PROD_ID12("CHEETAH ETHERCARD", "EN2228", 0x00fa7bc8, 0x00e990cc), | ||
865 | PCMCIA_DEVICE_PROD_ID12("CNet", "CNF301", 0xbc477dde, 0x78c5f40b), | ||
866 | PCMCIA_DEVICE_PROD_ID12("corega K.K.", "corega FEther PCC-TXD", 0x5261440f, 0x436768c5), | ||
867 | PCMCIA_DEVICE_PROD_ID12("corega K.K.", "corega FEtherII PCC-TXD", 0x5261440f, 0x730df72e), | ||
868 | PCMCIA_DEVICE_PROD_ID12("Dynalink", "L100C16", 0x55632fd5, 0x66bc2a90), | ||
869 | PCMCIA_DEVICE_PROD_ID12("Linksys", "EtherFast 10/100 PC Card (PCMPC100 V3)", 0x0733cc81, 0x232019a8), | ||
870 | PCMCIA_DEVICE_PROD_ID12("MELCO", "LPC3-TX", 0x481e0094, 0xf91af609), | ||
871 | PCMCIA_DEVICE_PROD_ID12("PCMCIA", "100BASE", 0x281f1c5d, 0x7c2add04), | ||
872 | PCMCIA_DEVICE_PROD_ID12("PCMCIA", "FastEtherCard", 0x281f1c5d, 0x7ef26116), | ||
873 | PCMCIA_DEVICE_PROD_ID12("PCMCIA", "FEP501", 0x281f1c5d, 0x2e272058), | ||
874 | PCMCIA_DEVICE_PROD_ID14("Network Everywhere", "AX88190", 0x820a67b6, 0xab9be5ef), | ||
875 | /* this is not specific enough */ | ||
876 | /* PCMCIA_DEVICE_MANF_CARD(0x021b, 0x0202), */ | ||
877 | PCMCIA_DEVICE_NULL, | ||
878 | }; | ||
879 | MODULE_DEVICE_TABLE(pcmcia, axnet_ids); | ||
880 | |||
853 | static struct pcmcia_driver axnet_cs_driver = { | 881 | static struct pcmcia_driver axnet_cs_driver = { |
854 | .owner = THIS_MODULE, | 882 | .owner = THIS_MODULE, |
855 | .drv = { | 883 | .drv = { |
@@ -857,6 +885,7 @@ static struct pcmcia_driver axnet_cs_driver = { | |||
857 | }, | 885 | }, |
858 | .attach = axnet_attach, | 886 | .attach = axnet_attach, |
859 | .detach = axnet_detach, | 887 | .detach = axnet_detach, |
888 | .id_table = axnet_ids, | ||
860 | }; | 889 | }; |
861 | 890 | ||
862 | static int __init init_axnet_cs(void) | 891 | static int __init init_axnet_cs(void) |
diff --git a/drivers/net/pcmcia/com20020_cs.c b/drivers/net/pcmcia/com20020_cs.c index 4294e1e3f156..68d58cc58d31 100644 --- a/drivers/net/pcmcia/com20020_cs.c +++ b/drivers/net/pcmcia/com20020_cs.c | |||
@@ -483,7 +483,11 @@ static int com20020_event(event_t event, int priority, | |||
483 | return 0; | 483 | return 0; |
484 | } /* com20020_event */ | 484 | } /* com20020_event */ |
485 | 485 | ||
486 | 486 | static struct pcmcia_device_id com20020_ids[] = { | |
487 | PCMCIA_DEVICE_PROD_ID12("Contemporary Control Systems, Inc.", "PCM20 Arcnet Adapter", 0x59991666, 0x95dfffaf), | ||
488 | PCMCIA_DEVICE_NULL | ||
489 | }; | ||
490 | MODULE_DEVICE_TABLE(pcmcia, com20020_ids); | ||
487 | 491 | ||
488 | static struct pcmcia_driver com20020_cs_driver = { | 492 | static struct pcmcia_driver com20020_cs_driver = { |
489 | .owner = THIS_MODULE, | 493 | .owner = THIS_MODULE, |
@@ -492,6 +496,7 @@ static struct pcmcia_driver com20020_cs_driver = { | |||
492 | }, | 496 | }, |
493 | .attach = com20020_attach, | 497 | .attach = com20020_attach, |
494 | .detach = com20020_detach, | 498 | .detach = com20020_detach, |
499 | .id_table = com20020_ids, | ||
495 | }; | 500 | }; |
496 | 501 | ||
497 | static int __init init_com20020_cs(void) | 502 | static int __init init_com20020_cs(void) |
diff --git a/drivers/net/pcmcia/fmvj18x_cs.c b/drivers/net/pcmcia/fmvj18x_cs.c index 0424865e8094..917adbbf0b5b 100644 --- a/drivers/net/pcmcia/fmvj18x_cs.c +++ b/drivers/net/pcmcia/fmvj18x_cs.c | |||
@@ -435,7 +435,9 @@ static void fmvj18x_config(dev_link_t *link) | |||
435 | pcmcia_get_status(handle, &status); | 435 | pcmcia_get_status(handle, &status); |
436 | if (status.CardState & CS_EVENT_3VCARD) | 436 | if (status.CardState & CS_EVENT_3VCARD) |
437 | link->conf.Vcc = 33; /* inserted in 3.3V slot */ | 437 | link->conf.Vcc = 33; /* inserted in 3.3V slot */ |
438 | } else if (le16_to_cpu(buf[1]) == PRODID_TDK_GN3410) { | 438 | } else if (le16_to_cpu(buf[1]) == PRODID_TDK_GN3410 |
439 | || le16_to_cpu(buf[1]) == PRODID_TDK_NP9610 | ||
440 | || le16_to_cpu(buf[1]) == PRODID_TDK_MN3200) { | ||
439 | /* MultiFunction Card */ | 441 | /* MultiFunction Card */ |
440 | link->conf.ConfigBase = 0x800; | 442 | link->conf.ConfigBase = 0x800; |
441 | link->conf.ConfigIndex = 0x47; | 443 | link->conf.ConfigIndex = 0x47; |
@@ -764,6 +766,31 @@ static int fmvj18x_event(event_t event, int priority, | |||
764 | return 0; | 766 | return 0; |
765 | } /* fmvj18x_event */ | 767 | } /* fmvj18x_event */ |
766 | 768 | ||
769 | static struct pcmcia_device_id fmvj18x_ids[] = { | ||
770 | PCMCIA_DEVICE_MANF_CARD(0x0004, 0x0004), | ||
771 | PCMCIA_DEVICE_PROD_ID12("EAGLE Technology", "NE200 ETHERNET LAN MBH10302 04", 0x528c88c4, 0x74f91e59), | ||
772 | PCMCIA_DEVICE_PROD_ID12("Eiger Labs,Inc", "EPX-10BT PC Card Ethernet 10BT", 0x53af556e, 0x877f9922), | ||
773 | PCMCIA_DEVICE_PROD_ID12("Eiger labs,Inc.", "EPX-10BT PC Card Ethernet 10BT", 0xf47e6c66, 0x877f9922), | ||
774 | PCMCIA_DEVICE_PROD_ID12("FUJITSU", "LAN Card(FMV-J182)", 0x6ee5a3d8, 0x5baf31db), | ||
775 | PCMCIA_DEVICE_PROD_ID12("FUJITSU", "MBH10308", 0x6ee5a3d8, 0x3f04875e), | ||
776 | PCMCIA_DEVICE_PROD_ID12("FUJITSU TOWA", "LA501", 0xb8451188, 0x12939ba2), | ||
777 | PCMCIA_DEVICE_PROD_ID12("HITACHI", "HT-4840-11", 0xf4f43949, 0x773910f4), | ||
778 | PCMCIA_DEVICE_PROD_ID12("NextComK.K.", "NC5310B Ver1.0 ", 0x8cef4d3a, 0x075fc7b6), | ||
779 | PCMCIA_DEVICE_PROD_ID12("NextComK.K.", "NC5310 Ver1.0 ", 0x8cef4d3a, 0xbccf43e6), | ||
780 | PCMCIA_DEVICE_PROD_ID12("RATOC System Inc.", "10BASE_T CARD R280", 0x85c10e17, 0xd9413666), | ||
781 | PCMCIA_DEVICE_PROD_ID12("TDK", "LAC-CD02x", 0x1eae9475, 0x8fa0ee70), | ||
782 | PCMCIA_DEVICE_PROD_ID12("TDK", "LAC-CF010", 0x1eae9475, 0x7683bc9a), | ||
783 | PCMCIA_DEVICE_PROD_ID1("CONTEC Co.,Ltd.", 0x58d8fee2), | ||
784 | PCMCIA_DEVICE_PROD_ID1("PCMCIA LAN MBH10304 ES", 0x2599f454), | ||
785 | PCMCIA_DEVICE_PROD_ID1("PCMCIA MBH10302", 0x8f4005da), | ||
786 | PCMCIA_DEVICE_PROD_ID1("UBKK,V2.0", 0x90888080), | ||
787 | PCMCIA_PFC_DEVICE_PROD_ID12(0, "TDK", "GlobalNetworker 3410/3412", 0x1eae9475, 0xd9a93bed), | ||
788 | PCMCIA_PFC_DEVICE_MANF_CARD(0, 0x0105, 0x0d0a), | ||
789 | PCMCIA_PFC_DEVICE_MANF_CARD(0, 0x0105, 0x0e0a), | ||
790 | PCMCIA_DEVICE_NULL, | ||
791 | }; | ||
792 | MODULE_DEVICE_TABLE(pcmcia, fmvj18x_ids); | ||
793 | |||
767 | static struct pcmcia_driver fmvj18x_cs_driver = { | 794 | static struct pcmcia_driver fmvj18x_cs_driver = { |
768 | .owner = THIS_MODULE, | 795 | .owner = THIS_MODULE, |
769 | .drv = { | 796 | .drv = { |
@@ -771,6 +798,7 @@ static struct pcmcia_driver fmvj18x_cs_driver = { | |||
771 | }, | 798 | }, |
772 | .attach = fmvj18x_attach, | 799 | .attach = fmvj18x_attach, |
773 | .detach = fmvj18x_detach, | 800 | .detach = fmvj18x_detach, |
801 | .id_table = fmvj18x_ids, | ||
774 | }; | 802 | }; |
775 | 803 | ||
776 | static int __init init_fmvj18x_cs(void) | 804 | static int __init init_fmvj18x_cs(void) |
diff --git a/drivers/net/pcmcia/ibmtr_cs.c b/drivers/net/pcmcia/ibmtr_cs.c index 3107ccfe8f3d..cf6d073ea558 100644 --- a/drivers/net/pcmcia/ibmtr_cs.c +++ b/drivers/net/pcmcia/ibmtr_cs.c | |||
@@ -119,9 +119,6 @@ static void ibmtr_detach(dev_link_t *); | |||
119 | 119 | ||
120 | static dev_link_t *dev_list; | 120 | static dev_link_t *dev_list; |
121 | 121 | ||
122 | extern int ibmtr_probe_card(struct net_device *dev); | ||
123 | extern irqreturn_t tok_interrupt (int irq, void *dev_id, struct pt_regs *regs); | ||
124 | |||
125 | /*====================================================================*/ | 122 | /*====================================================================*/ |
126 | 123 | ||
127 | typedef struct ibmtr_dev_t { | 124 | typedef struct ibmtr_dev_t { |
@@ -511,6 +508,13 @@ static void ibmtr_hw_setup(struct net_device *dev, u_int mmiobase) | |||
511 | return; | 508 | return; |
512 | } | 509 | } |
513 | 510 | ||
511 | static struct pcmcia_device_id ibmtr_ids[] = { | ||
512 | PCMCIA_DEVICE_PROD_ID12("3Com", "TokenLink Velocity PC Card", 0x41240e5b, 0x82c3734e), | ||
513 | PCMCIA_DEVICE_PROD_ID12("IBM", "TOKEN RING", 0xb569a6e5, 0xbf8eed47), | ||
514 | PCMCIA_DEVICE_NULL, | ||
515 | }; | ||
516 | MODULE_DEVICE_TABLE(pcmcia, ibmtr_ids); | ||
517 | |||
514 | static struct pcmcia_driver ibmtr_cs_driver = { | 518 | static struct pcmcia_driver ibmtr_cs_driver = { |
515 | .owner = THIS_MODULE, | 519 | .owner = THIS_MODULE, |
516 | .drv = { | 520 | .drv = { |
@@ -518,6 +522,7 @@ static struct pcmcia_driver ibmtr_cs_driver = { | |||
518 | }, | 522 | }, |
519 | .attach = ibmtr_attach, | 523 | .attach = ibmtr_attach, |
520 | .detach = ibmtr_detach, | 524 | .detach = ibmtr_detach, |
525 | .id_table = ibmtr_ids, | ||
521 | }; | 526 | }; |
522 | 527 | ||
523 | static int __init init_ibmtr_cs(void) | 528 | static int __init init_ibmtr_cs(void) |
diff --git a/drivers/net/pcmcia/nmclan_cs.c b/drivers/net/pcmcia/nmclan_cs.c index 4603807fcafb..b86e7253fbfc 100644 --- a/drivers/net/pcmcia/nmclan_cs.c +++ b/drivers/net/pcmcia/nmclan_cs.c | |||
@@ -1675,6 +1675,13 @@ static void set_multicast_list(struct net_device *dev) | |||
1675 | 1675 | ||
1676 | } /* set_multicast_list */ | 1676 | } /* set_multicast_list */ |
1677 | 1677 | ||
1678 | static struct pcmcia_device_id nmclan_ids[] = { | ||
1679 | PCMCIA_DEVICE_PROD_ID12("New Media Corporation", "Ethernet", 0x085a850b, 0x00b2e941), | ||
1680 | PCMCIA_DEVICE_PROD_ID12("Portable Add-ons", "Ethernet", 0x0ebf1d60, 0x00b2e941), | ||
1681 | PCMCIA_DEVICE_NULL, | ||
1682 | }; | ||
1683 | MODULE_DEVICE_TABLE(pcmcia, nmclan_ids); | ||
1684 | |||
1678 | static struct pcmcia_driver nmclan_cs_driver = { | 1685 | static struct pcmcia_driver nmclan_cs_driver = { |
1679 | .owner = THIS_MODULE, | 1686 | .owner = THIS_MODULE, |
1680 | .drv = { | 1687 | .drv = { |
@@ -1682,6 +1689,7 @@ static struct pcmcia_driver nmclan_cs_driver = { | |||
1682 | }, | 1689 | }, |
1683 | .attach = nmclan_attach, | 1690 | .attach = nmclan_attach, |
1684 | .detach = nmclan_detach, | 1691 | .detach = nmclan_detach, |
1692 | .id_table = nmclan_ids, | ||
1685 | }; | 1693 | }; |
1686 | 1694 | ||
1687 | static int __init init_nmclan_cs(void) | 1695 | static int __init init_nmclan_cs(void) |
diff --git a/drivers/net/pcmcia/pcnet_cs.c b/drivers/net/pcmcia/pcnet_cs.c index 181b6ed55003..855a45d062b1 100644 --- a/drivers/net/pcmcia/pcnet_cs.c +++ b/drivers/net/pcmcia/pcnet_cs.c | |||
@@ -1155,11 +1155,13 @@ static int set_config(struct net_device *dev, struct ifmap *map) | |||
1155 | static irqreturn_t ei_irq_wrapper(int irq, void *dev_id, struct pt_regs *regs) | 1155 | static irqreturn_t ei_irq_wrapper(int irq, void *dev_id, struct pt_regs *regs) |
1156 | { | 1156 | { |
1157 | struct net_device *dev = dev_id; | 1157 | struct net_device *dev = dev_id; |
1158 | pcnet_dev_t *info = PRIV(dev); | 1158 | pcnet_dev_t *info; |
1159 | irqreturn_t ret = ei_interrupt(irq, dev_id, regs); | 1159 | irqreturn_t ret = ei_interrupt(irq, dev_id, regs); |
1160 | 1160 | ||
1161 | if (ret == IRQ_HANDLED) | 1161 | if (ret == IRQ_HANDLED) { |
1162 | info = PRIV(dev); | ||
1162 | info->stale = 0; | 1163 | info->stale = 0; |
1164 | } | ||
1163 | return ret; | 1165 | return ret; |
1164 | } | 1166 | } |
1165 | 1167 | ||
@@ -1350,7 +1352,7 @@ static void dma_block_input(struct net_device *dev, int count, | |||
1350 | if (count & 0x01) | 1352 | if (count & 0x01) |
1351 | buf[count-1] = inb(nic_base + PCNET_DATAPORT), xfer_count++; | 1353 | buf[count-1] = inb(nic_base + PCNET_DATAPORT), xfer_count++; |
1352 | 1354 | ||
1353 | /* This was for the ALPHA version only, but enough people have | 1355 | /* This was for the ALPHA version only, but enough people have been |
1354 | encountering problems that it is still here. */ | 1356 | encountering problems that it is still here. */ |
1355 | #ifdef PCMCIA_DEBUG | 1357 | #ifdef PCMCIA_DEBUG |
1356 | if (ei_debug > 4) { /* DMA termination address check... */ | 1358 | if (ei_debug > 4) { /* DMA termination address check... */ |
@@ -1424,7 +1426,7 @@ static void dma_block_output(struct net_device *dev, int count, | |||
1424 | dma_start = jiffies; | 1426 | dma_start = jiffies; |
1425 | 1427 | ||
1426 | #ifdef PCMCIA_DEBUG | 1428 | #ifdef PCMCIA_DEBUG |
1427 | /* This was for the ALPHA version only, but enough people have | 1429 | /* This was for the ALPHA version only, but enough people have been |
1428 | encountering problems that it is still here. */ | 1430 | encountering problems that it is still here. */ |
1429 | if (ei_debug > 4) { /* DMA termination address check... */ | 1431 | if (ei_debug > 4) { /* DMA termination address check... */ |
1430 | int addr, tries = 20; | 1432 | int addr, tries = 20; |
@@ -1635,6 +1637,208 @@ failed: | |||
1635 | 1637 | ||
1636 | /*====================================================================*/ | 1638 | /*====================================================================*/ |
1637 | 1639 | ||
1640 | static struct pcmcia_device_id pcnet_ids[] = { | ||
1641 | PCMCIA_PFC_DEVICE_MANF_CARD(0, 0x0057, 0x0021), | ||
1642 | PCMCIA_PFC_DEVICE_MANF_CARD(0, 0x0104, 0x000a), | ||
1643 | PCMCIA_PFC_DEVICE_MANF_CARD(0, 0x0105, 0xea15), | ||
1644 | PCMCIA_PFC_DEVICE_MANF_CARD(0, 0x0143, 0x3341), | ||
1645 | PCMCIA_PFC_DEVICE_MANF_CARD(0, 0x0143, 0xc0ab), | ||
1646 | PCMCIA_PFC_DEVICE_MANF_CARD(0, 0x021b, 0x0101), | ||
1647 | PCMCIA_PFC_DEVICE_MANF_CARD(0, 0x08a1, 0xc0ab), | ||
1648 | PCMCIA_PFC_DEVICE_PROD_ID12(0, "AnyCom", "Fast Ethernet ", 0x578ba6e7, 0x02d92d1e), | ||
1649 | PCMCIA_PFC_DEVICE_PROD_ID12(0, "D-Link", "DME336T", 0x1a424a1c, 0xb23897ff), | ||
1650 | PCMCIA_PFC_DEVICE_PROD_ID12(0, "Grey Cell", "GCS3000", 0x2a151fac, 0x48b932ae), | ||
1651 | PCMCIA_PFC_DEVICE_PROD_ID12(0, "Linksys", "EtherFast 10&100 + 56K PC Card (PCMLM56)", 0x0733cc81, 0xb3765033), | ||
1652 | PCMCIA_PFC_DEVICE_PROD_ID12(0, "LINKSYS", "PCMLM336", 0xf7cb0b07, 0x7a821b58), | ||
1653 | PCMCIA_PFC_DEVICE_PROD_ID12(0, "PCMCIAs", "ComboCard", 0xdcfe12d3, 0xcd8906cc), | ||
1654 | PCMCIA_PFC_DEVICE_PROD_ID12(0, "PCMCIAs", "LanModem", 0xdcfe12d3, 0xc67c648f), | ||
1655 | PCMCIA_MFC_DEVICE_PROD_ID12(0, "IBM", "Home and Away 28.8 PC Card ", 0xb569a6e5, 0x5bd4ff2c), | ||
1656 | PCMCIA_MFC_DEVICE_PROD_ID12(0, "IBM", "Home and Away Credit Card Adapter", 0xb569a6e5, 0x4bdf15c3), | ||
1657 | PCMCIA_MFC_DEVICE_PROD_ID12(0, "IBM", "w95 Home and Away Credit Card ", 0xb569a6e5, 0xae911c15), | ||
1658 | PCMCIA_MFC_DEVICE_PROD_ID123(0, "APEX DATA", "MULTICARD", "ETHERNET-MODEM", 0x11c2da09, 0x7289dc5d, 0xaad95e1f), | ||
1659 | PCMCIA_MFC_DEVICE_PROD_ID2(0, "FAX/Modem/Ethernet Combo Card ", 0x1ed59302), | ||
1660 | PCMCIA_DEVICE_MANF_CARD(0x0057, 0x1004), | ||
1661 | PCMCIA_DEVICE_MANF_CARD(0x0104, 0x000d), | ||
1662 | PCMCIA_DEVICE_MANF_CARD(0x0104, 0x0075), | ||
1663 | PCMCIA_DEVICE_MANF_CARD(0x0104, 0x0145), | ||
1664 | PCMCIA_DEVICE_MANF_CARD(0x0149, 0x0230), | ||
1665 | PCMCIA_DEVICE_MANF_CARD(0x0149, 0x4530), | ||
1666 | /* PCMCIA_DEVICE_MANF_CARD(0x0149, 0xc1ab), conflict with axnet_cs */ | ||
1667 | PCMCIA_DEVICE_MANF_CARD(0x0186, 0x0110), | ||
1668 | PCMCIA_DEVICE_MANF_CARD(0x01bf, 0x2328), | ||
1669 | PCMCIA_DEVICE_MANF_CARD(0x01bf, 0x8041), | ||
1670 | PCMCIA_DEVICE_MANF_CARD(0x0213, 0x2452), | ||
1671 | /* PCMCIA_DEVICE_MANF_CARD(0x021b, 0x0202), conflict with axnet_cs */ | ||
1672 | PCMCIA_DEVICE_MANF_CARD(0x026f, 0x0300), | ||
1673 | PCMCIA_DEVICE_MANF_CARD(0x026f, 0x0307), | ||
1674 | PCMCIA_DEVICE_MANF_CARD(0x026f, 0x030a), | ||
1675 | PCMCIA_DEVICE_MANF_CARD(0x0274, 0x1103), | ||
1676 | PCMCIA_DEVICE_MANF_CARD(0x0274, 0x1121), | ||
1677 | PCMCIA_DEVICE_PROD_ID12("2408LAN", "Ethernet", 0x352fff7f, 0x00b2e941), | ||
1678 | PCMCIA_DEVICE_PROD_ID123("Cardwell", "PCMCIA", "ETHERNET", 0x9533672e, 0x281f1c5d, 0x3ff7175b), | ||
1679 | PCMCIA_DEVICE_PROD_ID123("CNet ", "CN30BC", "ETHERNET", 0x9fe55d3d, 0x85601198, 0x3ff7175b), | ||
1680 | PCMCIA_DEVICE_PROD_ID123("Digital", "Ethernet", "Adapter", 0x9999ab35, 0x00b2e941, 0x4b0d829e), | ||
1681 | PCMCIA_DEVICE_PROD_ID123("Edimax Technology Inc.", "PCMCIA", "Ethernet Card", 0x738a0019, 0x281f1c5d, 0x5e9d92c0), | ||
1682 | PCMCIA_DEVICE_PROD_ID123("EFA ", "EFA207", "ETHERNET", 0x3d294be4, 0xeb9aab6c, 0x3ff7175b), | ||
1683 | PCMCIA_DEVICE_PROD_ID123("I-O DATA", "PCLA", "ETHERNET", 0x1d55d7ec, 0xe4c64d34, 0x3ff7175b), | ||
1684 | PCMCIA_DEVICE_PROD_ID123("IO DATA", "PCLATE", "ETHERNET", 0x547e66dc, 0x6b260753, 0x3ff7175b), | ||
1685 | PCMCIA_DEVICE_PROD_ID123("KingMax Technology Inc.", "EN10-T2", "PCMCIA Ethernet Card", 0x932b7189, 0x699e4436, 0x6f6652e0), | ||
1686 | PCMCIA_DEVICE_PROD_ID123("PCMCIA", "PCMCIA-ETHERNET-CARD", "UE2216", 0x281f1c5d, 0xd4cd2f20, 0xb87add82), | ||
1687 | PCMCIA_DEVICE_PROD_ID123("PCMCIA", "PCMCIA-ETHERNET-CARD", "UE2620", 0x281f1c5d, 0xd4cd2f20, 0x7d3d83a8), | ||
1688 | PCMCIA_DEVICE_PROD_ID1("2412LAN", 0x67f236ab), | ||
1689 | PCMCIA_DEVICE_PROD_ID12("ACCTON", "EN2212", 0xdfc6b5b2, 0xcb112a11), | ||
1690 | PCMCIA_DEVICE_PROD_ID12("ACCTON", "EN2216-PCMCIA-ETHERNET", 0xdfc6b5b2, 0x5542bfff), | ||
1691 | PCMCIA_DEVICE_PROD_ID12("Allied Telesis, K.K.", "CentreCOM LA100-PCM-T V2 100/10M LAN PC Card", 0xbb7fbdd7, 0xcd91cc68), | ||
1692 | PCMCIA_DEVICE_PROD_ID12("Allied Telesis, K.K.", "CentreCOM LA-PCM", 0xbb7fbdd7, 0x5ba10d49), | ||
1693 | PCMCIA_DEVICE_PROD_ID12("Allied Telesis K.K.", "LA100-PCM V2", 0x36634a66, 0xc6d05997), | ||
1694 | PCMCIA_DEVICE_PROD_ID12("Allied Telesis, K.K.", "CentreCOM LA-PCM_V2", 0xbb7fBdd7, 0x28e299f8), | ||
1695 | PCMCIA_DEVICE_PROD_ID12("Allied Telesis K.K.", "LA-PCM V3", 0x36634a66, 0x62241d96), | ||
1696 | PCMCIA_DEVICE_PROD_ID12("AmbiCom", "AMB8010", 0x5070a7f9, 0x82f96e96), | ||
1697 | PCMCIA_DEVICE_PROD_ID12("AmbiCom", "AMB8610", 0x5070a7f9, 0x86741224), | ||
1698 | PCMCIA_DEVICE_PROD_ID12("AmbiCom Inc", "AMB8002", 0x93b15570, 0x75ec3efb), | ||
1699 | PCMCIA_DEVICE_PROD_ID12("AmbiCom Inc", "AMB8002T", 0x93b15570, 0x461c5247), | ||
1700 | PCMCIA_DEVICE_PROD_ID12("AmbiCom Inc", "AMB8010", 0x93b15570, 0x82f96e96), | ||
1701 | PCMCIA_DEVICE_PROD_ID12("AnyCom", "ECO Ethernet", 0x578ba6e7, 0x0a9888c1), | ||
1702 | PCMCIA_DEVICE_PROD_ID12("AnyCom", "ECO Ethernet 10/100", 0x578ba6e7, 0x939fedbd), | ||
1703 | PCMCIA_DEVICE_PROD_ID12("AROWANA", "PCMCIA Ethernet LAN Card", 0x313adbc8, 0x08d9f190), | ||
1704 | PCMCIA_DEVICE_PROD_ID12("ASANTE", "FriendlyNet PC Card", 0x3a7ade0f, 0x41c64504), | ||
1705 | PCMCIA_DEVICE_PROD_ID12("Billionton", "LNT-10TB", 0x552ab682, 0xeeb1ba6a), | ||
1706 | PCMCIA_DEVICE_PROD_ID12("CF", "10Base-Ethernet", 0x44ebf863, 0x93ae4d79), | ||
1707 | PCMCIA_DEVICE_PROD_ID12("CNet", "CN40BC Ethernet", 0xbc477dde, 0xfba775a7), | ||
1708 | PCMCIA_DEVICE_PROD_ID12("COMPU-SHACK", "BASEline PCMCIA 10 MBit Ethernetadapter", 0xfa2e424d, 0xe9190d8a), | ||
1709 | PCMCIA_DEVICE_PROD_ID12("COMPU-SHACK", "FASTline PCMCIA 10/100 Fast-Ethernet", 0xfa2e424d, 0x3953d9b9), | ||
1710 | PCMCIA_DEVICE_PROD_ID12("CONTEC", "C-NET(PC)C-10L", 0x21cab552, 0xf6f90722), | ||
1711 | PCMCIA_DEVICE_PROD_ID12("corega", "FEther PCC-TXF", 0x0a21501a, 0xa51564a2), | ||
1712 | PCMCIA_DEVICE_PROD_ID12("corega K.K.", "corega EtherII PCC-T", 0x5261440f, 0xfa9d85bd), | ||
1713 | PCMCIA_DEVICE_PROD_ID12("Corega K.K.", "corega EtherII PCC-TD", 0xd4fdcbd8, 0xc49bd73d), | ||
1714 | PCMCIA_DEVICE_PROD_ID12("corega K.K.", "corega Ether PCC-T", 0x5261440f, 0x6705fcaa), | ||
1715 | PCMCIA_DEVICE_PROD_ID12("corega K.K.", "corega FastEther PCC-TX", 0x5261440f, 0x485e85d9), | ||
1716 | PCMCIA_DEVICE_PROD_ID12("Corega,K.K.", "Ethernet LAN Card", 0x110d26d9, 0x9fd2f0a2), | ||
1717 | PCMCIA_DEVICE_PROD_ID12("corega,K.K.", "Ethernet LAN Card", 0x9791a90e, 0x9fd2f0a2), | ||
1718 | PCMCIA_DEVICE_PROD_ID12("CouplerlessPCMCIA", "100BASE", 0xee5af0ad, 0x7c2add04), | ||
1719 | PCMCIA_DEVICE_PROD_ID12("CyQ've", "ELA-010", 0x77008979, 0x9d8d445d), | ||
1720 | PCMCIA_DEVICE_PROD_ID12("CyQ've", "ELA-110E 10/100M LAN Card", 0x77008979, 0xfd184814), | ||
1721 | PCMCIA_DEVICE_PROD_ID12("DataTrek.", "NetCard ", 0x5cd66d9d, 0x84697ce0), | ||
1722 | PCMCIA_DEVICE_PROD_ID12("Dayna Communications, Inc.", "CommuniCard E", 0x0c629325, 0xb4e7dbaf), | ||
1723 | PCMCIA_DEVICE_PROD_ID12("Digicom", "Palladio LAN 10/100", 0x697403d8, 0xe160b995), | ||
1724 | PCMCIA_DEVICE_PROD_ID12("Digicom", "Palladio LAN 10/100 Dongless", 0x697403d8, 0xa6d3b233), | ||
1725 | PCMCIA_DEVICE_PROD_ID12("DIGITAL", "DEPCM-XX", 0x69616cb3, 0xe600e76e), | ||
1726 | PCMCIA_DEVICE_PROD_ID12("D-Link", "DE-650", 0x1a424a1c, 0xf28c8398), | ||
1727 | PCMCIA_DEVICE_PROD_ID12("D-Link", "DE-660", 0x1a424a1c, 0xd9a1d05b), | ||
1728 | PCMCIA_DEVICE_PROD_ID12("D-Link", "DFE-650", 0x1a424a1c, 0x0f0073f9), | ||
1729 | PCMCIA_DEVICE_PROD_ID12("Dual Speed", "10/100 PC Card", 0x725b842d, 0xf1efee84), | ||
1730 | PCMCIA_DEVICE_PROD_ID12("Dual Speed", "10/100 Port Attached PC Card", 0x725b842d, 0x2db1f8e9), | ||
1731 | PCMCIA_DEVICE_PROD_ID12("Dynalink", "L10BC", 0x55632fd5, 0xdc65f2b1), | ||
1732 | PCMCIA_DEVICE_PROD_ID12("DYNALINK", "L10BC", 0x6a26d1cf, 0xdc65f2b1), | ||
1733 | PCMCIA_DEVICE_PROD_ID12("DYNALINK", "L10C", 0x6a26d1cf, 0xc4f84efb), | ||
1734 | PCMCIA_DEVICE_PROD_ID12("E-CARD", "E-CARD", 0x6701da11, 0x6701da11), | ||
1735 | PCMCIA_DEVICE_PROD_ID12("EIGER Labs Inc.", "Ethernet 10BaseT card", 0x53c864c6, 0xedd059f6), | ||
1736 | PCMCIA_DEVICE_PROD_ID12("EIGER Labs Inc.", "Ethernet Combo card", 0x53c864c6, 0x929c486c), | ||
1737 | PCMCIA_DEVICE_PROD_ID12("Ethernet", "Adapter", 0x00b2e941, 0x4b0d829e), | ||
1738 | PCMCIA_DEVICE_PROD_ID12("Ethernet Adapter", "E2000 PCMCIA Ethernet", 0x96767301, 0x71fbbc61), | ||
1739 | PCMCIA_DEVICE_PROD_ID12("Ethernet PCMCIA adapter", "EP-210", 0x8dd86181, 0xf2b52517), | ||
1740 | PCMCIA_DEVICE_PROD_ID12("Fast Ethernet", "Adapter", 0xb4be14e3, 0x4b0d829e), | ||
1741 | PCMCIA_DEVICE_PROD_ID12("Grey Cell", "GCS2000", 0x2a151fac, 0xf00555cb), | ||
1742 | PCMCIA_DEVICE_PROD_ID12("Grey Cell", "GCS2220", 0x2a151fac, 0xc1b7e327), | ||
1743 | PCMCIA_DEVICE_PROD_ID12("GVC", "NIC-2000p", 0x76e171bd, 0x6eb1c947), | ||
1744 | PCMCIA_DEVICE_PROD_ID12("IBM Corp.", "Ethernet", 0xe3736c88, 0x00b2e941), | ||
1745 | PCMCIA_DEVICE_PROD_ID12("IC-CARD", "IC-CARD", 0x60cb09a6, 0x60cb09a6), | ||
1746 | PCMCIA_DEVICE_PROD_ID12("IO DATA", "PCETTX", 0x547e66dc, 0x6fc5459b), | ||
1747 | PCMCIA_DEVICE_PROD_ID12("iPort", "10/100 Ethernet Card", 0x56c538d2, 0x11b0ffc0), | ||
1748 | PCMCIA_DEVICE_PROD_ID12("KANSAI ELECTRIC CO.,LTD", "KLA-PCM/T", 0xb18dc3b4, 0xcc51a956), | ||
1749 | PCMCIA_DEVICE_PROD_ID12("KCI", "PE520 PCMCIA Ethernet Adapter", 0xa89b87d3, 0x1eb88e64), | ||
1750 | PCMCIA_DEVICE_PROD_ID12("KINGMAX", "EN10T2T", 0x7bcb459a, 0xa5c81fa5), | ||
1751 | PCMCIA_DEVICE_PROD_ID12("Kingston", "KNE-PC2", 0x1128e633, 0xce2a89b3), | ||
1752 | PCMCIA_DEVICE_PROD_ID12("Kingston Technology Corp.", "EtheRx PC Card Ethernet Adapter", 0x313c7be3, 0x0afb54a2), | ||
1753 | PCMCIA_DEVICE_PROD_ID12("Laneed", "LD-10/100CD", 0x1b7827b2, 0xcda71d1c), | ||
1754 | PCMCIA_DEVICE_PROD_ID12("Laneed", "LD-CDF", 0x1b7827b2, 0xfec71e40), | ||
1755 | PCMCIA_DEVICE_PROD_ID12("Laneed", "LD-CDL/T", 0x1b7827b2, 0x79fba4f7), | ||
1756 | PCMCIA_DEVICE_PROD_ID12("Laneed", "LD-CDS", 0x1b7827b2, 0x931afaab), | ||
1757 | PCMCIA_DEVICE_PROD_ID12("Linksys", "Combo PCMCIA EthernetCard (EC2T)", 0x0733cc81, 0x32ee8c78), | ||
1758 | PCMCIA_DEVICE_PROD_ID12("LINKSYS", "E-CARD", 0xf7cb0b07, 0x6701da11), | ||
1759 | PCMCIA_DEVICE_PROD_ID12("Linksys", "EtherFast 10/100 Integrated PC Card (PCM100)", 0x0733cc81, 0x453c3f9d), | ||
1760 | PCMCIA_DEVICE_PROD_ID12("Linksys", "EtherFast 10/100 PC Card (PCMPC100)", 0x0733cc81, 0x66c5a389), | ||
1761 | PCMCIA_DEVICE_PROD_ID12("Linksys", "EtherFast 10/100 PC Card (PCMPC100 V2)", 0x0733cc81, 0x3a3b28e9), | ||
1762 | PCMCIA_DEVICE_PROD_ID12("Linksys", "HomeLink Phoneline ", 0x0733cc81, 0x5e07cfa0), | ||
1763 | PCMCIA_DEVICE_PROD_ID12("Logitec", "LPM-LN100TX", 0x88fcdeda, 0x6d772737), | ||
1764 | PCMCIA_DEVICE_PROD_ID12("Logitec", "LPM-LN20T", 0x88fcdeda, 0x81090922), | ||
1765 | PCMCIA_DEVICE_PROD_ID12("LONGSHINE", "PCMCIA Ethernet Card", 0xf866b0b0, 0x6f6652e0), | ||
1766 | PCMCIA_DEVICE_PROD_ID12("MACNICA", "ME1-JEIDA", 0x20841b68, 0xaf8a3578), | ||
1767 | PCMCIA_DEVICE_PROD_ID12("Macsense", "MPC-10", 0xd830297f, 0xd265c307), | ||
1768 | PCMCIA_DEVICE_PROD_ID12("Matsushita Electric Industrial Co.,LTD.", "CF-VEL211", 0x44445376, 0x8ded41d4), | ||
1769 | PCMCIA_DEVICE_PROD_ID12("MAXTECH", "PCN2000", 0x78d64bc0, 0xca0ca4b8), | ||
1770 | PCMCIA_DEVICE_PROD_ID12("MELCO", "LPC2-T", 0x481e0094, 0xa2eb0cf3), | ||
1771 | PCMCIA_DEVICE_PROD_ID12("MELCO", "LPC2-TX", 0x481e0094, 0x41a6916c), | ||
1772 | PCMCIA_DEVICE_PROD_ID12("Microcom C.E.", "Travel Card LAN 10/100", 0x4b91cec7, 0xe70220d6), | ||
1773 | PCMCIA_DEVICE_PROD_ID12("Microdyne", "NE4200", 0x2e6da59b, 0x0478e472), | ||
1774 | PCMCIA_DEVICE_PROD_ID12("MIDORI ELEC.", "LT-PCMT", 0x648d55c1, 0xbde526c7), | ||
1775 | PCMCIA_DEVICE_PROD_ID12("National Semiconductor", "InfoMover 4100", 0x36e1191f, 0x60c229b9), | ||
1776 | PCMCIA_DEVICE_PROD_ID12("National Semiconductor", "InfoMover NE4100", 0x36e1191f, 0xa6617ec8), | ||
1777 | PCMCIA_DEVICE_PROD_ID12("NEC", "PC-9801N-J12", 0x18df0ba0, 0xbc912d76), | ||
1778 | PCMCIA_DEVICE_PROD_ID12("NETGEAR", "FA410TX", 0x9aa79dc3, 0x60e5bc0e), | ||
1779 | PCMCIA_DEVICE_PROD_ID12("NETGEAR", "FA411", 0x9aa79dc3, 0x40fad875), | ||
1780 | PCMCIA_DEVICE_PROD_ID12("Network Everywhere", "Fast Ethernet 10/100 PC Card", 0x820a67b6, 0x31ed1a5f), | ||
1781 | PCMCIA_DEVICE_PROD_ID12("NextCom K.K.", "Next Hawk", 0xaedaec74, 0xad050ef1), | ||
1782 | PCMCIA_DEVICE_PROD_ID12("PCMCIA", "10/100Mbps Ethernet Card", 0x281f1c5d, 0x6e41773b), | ||
1783 | PCMCIA_DEVICE_PROD_ID12("PCMCIA", "Ethernet", 0x281f1c5d, 0x00b2e941), | ||
1784 | PCMCIA_DEVICE_PROD_ID12("PCMCIA", "ETHERNET", 0x281f1c5d, 0x3ff7175b), | ||
1785 | PCMCIA_DEVICE_PROD_ID12("PCMCIA", "Ethernet 10BaseT Card", 0x281f1c5d, 0x4de2f6c8), | ||
1786 | PCMCIA_DEVICE_PROD_ID12("PCMCIA", "Ethernet Card", 0x281f1c5d, 0x5e9d92c0), | ||
1787 | PCMCIA_DEVICE_PROD_ID12("PCMCIA", "Ethernet Combo card", 0x281f1c5d, 0x929c486c), | ||
1788 | PCMCIA_DEVICE_PROD_ID12("PCMCIA", "ETHERNET V1.0", 0x281f1c5d, 0x4d8817c8), | ||
1789 | PCMCIA_DEVICE_PROD_ID12("PCMCIA", "FastEthernet", 0x281f1c5d, 0xfe871eeb), | ||
1790 | PCMCIA_DEVICE_PROD_ID12("PCMCIA", "Fast-Ethernet", 0x281f1c5d, 0x45f1f3b4), | ||
1791 | PCMCIA_DEVICE_PROD_ID12("PCMCIA", "FAST ETHERNET CARD", 0x281f1c5d, 0xec5dbca7), | ||
1792 | PCMCIA_DEVICE_PROD_ID12("PCMCIA LAN", "Ethernet", 0x7500e246, 0x00b2e941), | ||
1793 | PCMCIA_DEVICE_PROD_ID12("PCMCIA", "LNT-10TN", 0x281f1c5d, 0xe707f641), | ||
1794 | PCMCIA_DEVICE_PROD_ID12("PCMCIAs", "ComboCard", 0xdcfe12d3, 0xcd8906cc), | ||
1795 | PCMCIA_DEVICE_PROD_ID12("PCMCIA", "UE2212", 0x281f1c5d, 0xbf17199b), | ||
1796 | PCMCIA_DEVICE_PROD_ID12("PCMCIA", " Ethernet NE2000 Compatible", 0x281f1c5d, 0x42d5d7e1), | ||
1797 | PCMCIA_DEVICE_PROD_ID12("PRETEC", "Ethernet CompactLAN 10baseT 3.3V", 0xebf91155, 0x30074c80), | ||
1798 | PCMCIA_DEVICE_PROD_ID12("PRETEC", "Ethernet CompactLAN 10BaseT 3.3V", 0xebf91155, 0x7f5a4f50), | ||
1799 | PCMCIA_DEVICE_PROD_ID12("Psion Dacom", "Gold Card Ethernet", 0xf5f025c2, 0x3a30e110), | ||
1800 | PCMCIA_DEVICE_PROD_ID12("=RELIA==", "Ethernet", 0xcdd0644a, 0x00b2e941), | ||
1801 | PCMCIA_DEVICE_PROD_ID12("RP", "1625B Ethernet NE2000 Compatible", 0xe3e66e22, 0xb96150df), | ||
1802 | PCMCIA_DEVICE_PROD_ID12("RPTI", "EP400 Ethernet NE2000 Compatible", 0xdc6f88fd, 0x4a7e2ae0), | ||
1803 | PCMCIA_DEVICE_PROD_ID12("RPTI", "EP401 Ethernet NE2000 Compatible", 0xdc6f88fd, 0x4bcbd7fd), | ||
1804 | PCMCIA_DEVICE_PROD_ID12("RPTI LTD.", "EP400", 0xc53ac515, 0x81e39388), | ||
1805 | PCMCIA_DEVICE_PROD_ID12("SCM", "Ethernet Combo card", 0xbdc3b102, 0x929c486c), | ||
1806 | PCMCIA_DEVICE_PROD_ID12("Seiko Epson Corp.", "Ethernet", 0x09928730, 0x00b2e941), | ||
1807 | PCMCIA_DEVICE_PROD_ID12("SMC", "EZCard-10-PCMCIA", 0xc4f8b18b, 0xfb21d265), | ||
1808 | PCMCIA_DEVICE_PROD_ID12("Socket Communications Inc", "Socket EA PCMCIA LAN Adapter Revision D", 0xc70a4760, 0x2ade483e), | ||
1809 | PCMCIA_DEVICE_PROD_ID12("Socket Communications Inc", "Socket EA PCMCIA LAN Adapter Revision E", 0xc70a4760, 0x5dd978a8), | ||
1810 | PCMCIA_DEVICE_PROD_ID12("TDK", "LAK-CD031 for PCMCIA", 0x1eae9475, 0x0ed386fa), | ||
1811 | PCMCIA_DEVICE_PROD_ID12("Telecom Device K.K.", "SuperSocket RE450T", 0x466b05f0, 0x8b74bc4f), | ||
1812 | PCMCIA_DEVICE_PROD_ID12("Telecom Device K.K.", "SuperSocket RE550T", 0x466b05f0, 0x33c8db2a), | ||
1813 | PCMCIA_DEVICE_PROD_ID13("Hypertec", "EP401", 0x8787bec7, 0xf6e4a31e), | ||
1814 | PCMCIA_DEVICE_PROD_ID13("KingMax Technology Inc.", "Ethernet Card", 0x932b7189, 0x5e9d92c0), | ||
1815 | PCMCIA_DEVICE_PROD_ID13("LONGSHINE", "EP401", 0xf866b0b0, 0xf6e4a31e), | ||
1816 | PCMCIA_DEVICE_PROD_ID13("Xircom", "CFE-10", 0x2e3ee845, 0x22a49f89), | ||
1817 | PCMCIA_DEVICE_PROD_ID1("CyQ've 10 Base-T LAN CARD", 0x94faf360), | ||
1818 | PCMCIA_DEVICE_PROD_ID1("EP-210 PCMCIA LAN CARD.", 0x8850b4de), | ||
1819 | PCMCIA_DEVICE_PROD_ID1("ETHER-C16", 0x06a8514f), | ||
1820 | PCMCIA_DEVICE_PROD_ID1("IC-CARD", 0x60cb09a6), | ||
1821 | PCMCIA_DEVICE_PROD_ID1("NE2000 Compatible", 0x75b8ad5a), | ||
1822 | PCMCIA_DEVICE_PROD_ID2("EN-6200P2", 0xa996d078), | ||
1823 | /* too generic! */ | ||
1824 | /* PCMCIA_DEVICE_PROD_ID12("PCMCIA", "10/100 Ethernet Card", 0x281f1c5d, 0x11b0ffc0), */ | ||
1825 | PCMCIA_PFC_DEVICE_CIS_PROD_ID12(0, "PCMCIA", "EN2218-LAN/MODEM", 0x281f1c5d, 0x570f348e, "PCMLM28.cis"), | ||
1826 | PCMCIA_PFC_DEVICE_CIS_PROD_ID12(0, "PCMCIA", "UE2218-LAN/MODEM", 0x281f1c5d, 0x6fdcacee, "PCMLM28.cis"), | ||
1827 | PCMCIA_PFC_DEVICE_CIS_PROD_ID12(0, "Psion Dacom", "Gold Card V34 Ethernet", 0xf5f025c2, 0x338e8155, "PCMLM28.cis"), | ||
1828 | PCMCIA_PFC_DEVICE_CIS_PROD_ID12(0, "Psion Dacom", "Gold Card V34 Ethernet GSM", 0xf5f025c2, 0x4ae85d35, "PCMLM28.cis"), | ||
1829 | PCMCIA_PFC_DEVICE_CIS_PROD_ID12(0, "LINKSYS", "PCMLM28", 0xf7cb0b07, 0x66881874, "PCMLM28.cis"), | ||
1830 | PCMCIA_MFC_DEVICE_CIS_PROD_ID12(0, "DAYNA COMMUNICATIONS", "LAN AND MODEM MULTIFUNCTION", 0x8fdf8f89, 0xdd5ed9e8, "DP83903.cis"), | ||
1831 | PCMCIA_MFC_DEVICE_CIS_PROD_ID4(0, "NSC MF LAN/Modem", 0x58fc6056, "DP83903.cis"), | ||
1832 | PCMCIA_MFC_DEVICE_CIS_MANF_CARD(0, 0x0175, 0x0000, "DP83903.cis"), | ||
1833 | PCMCIA_DEVICE_CIS_MANF_CARD(0xc00f, 0x0002, "LA-PCM.cis"), | ||
1834 | PCMCIA_DEVICE_CIS_PROD_ID12("KTI", "PE520 PLUS", 0xad180345, 0x9d58d392, "PE520.cis"), | ||
1835 | PCMCIA_DEVICE_CIS_PROD_ID12("NDC", "Ethernet", 0x01c43ae1, 0x00b2e941, "NE2K.cis"), | ||
1836 | PCMCIA_DEVICE_CIS_PROD_ID12("PMX ", "PE-200", 0x34f3f1c8, 0x10b59f8c, "PE-200.cis"), | ||
1837 | PCMCIA_DEVICE_CIS_PROD_ID12("TAMARACK", "Ethernet", 0xcf434fba, 0x00b2e941, "tamarack.cis"), | ||
1838 | PCMCIA_DEVICE_NULL | ||
1839 | }; | ||
1840 | MODULE_DEVICE_TABLE(pcmcia, pcnet_ids); | ||
1841 | |||
1638 | static struct pcmcia_driver pcnet_driver = { | 1842 | static struct pcmcia_driver pcnet_driver = { |
1639 | .drv = { | 1843 | .drv = { |
1640 | .name = "pcnet_cs", | 1844 | .name = "pcnet_cs", |
@@ -1642,6 +1846,7 @@ static struct pcmcia_driver pcnet_driver = { | |||
1642 | .attach = pcnet_attach, | 1846 | .attach = pcnet_attach, |
1643 | .detach = pcnet_detach, | 1847 | .detach = pcnet_detach, |
1644 | .owner = THIS_MODULE, | 1848 | .owner = THIS_MODULE, |
1849 | .id_table = pcnet_ids, | ||
1645 | }; | 1850 | }; |
1646 | 1851 | ||
1647 | static int __init init_pcnet_cs(void) | 1852 | static int __init init_pcnet_cs(void) |
diff --git a/drivers/net/pcmcia/smc91c92_cs.c b/drivers/net/pcmcia/smc91c92_cs.c index 85a152173148..bc01c88c6709 100644 --- a/drivers/net/pcmcia/smc91c92_cs.c +++ b/drivers/net/pcmcia/smc91c92_cs.c | |||
@@ -127,6 +127,12 @@ struct smc_private { | |||
127 | int rx_ovrn; | 127 | int rx_ovrn; |
128 | }; | 128 | }; |
129 | 129 | ||
130 | struct smc_cfg_mem { | ||
131 | tuple_t tuple; | ||
132 | cisparse_t parse; | ||
133 | u_char buf[255]; | ||
134 | }; | ||
135 | |||
130 | /* Special definitions for Megahertz multifunction cards */ | 136 | /* Special definitions for Megahertz multifunction cards */ |
131 | #define MEGAHERTZ_ISR 0x0380 | 137 | #define MEGAHERTZ_ISR 0x0380 |
132 | 138 | ||
@@ -498,14 +504,24 @@ static int mhz_mfc_config(dev_link_t *link) | |||
498 | { | 504 | { |
499 | struct net_device *dev = link->priv; | 505 | struct net_device *dev = link->priv; |
500 | struct smc_private *smc = netdev_priv(dev); | 506 | struct smc_private *smc = netdev_priv(dev); |
501 | tuple_t tuple; | 507 | struct smc_cfg_mem *cfg_mem; |
502 | cisparse_t parse; | 508 | tuple_t *tuple; |
503 | u_char buf[255]; | 509 | cisparse_t *parse; |
504 | cistpl_cftable_entry_t *cf = &parse.cftable_entry; | 510 | cistpl_cftable_entry_t *cf; |
511 | u_char *buf; | ||
505 | win_req_t req; | 512 | win_req_t req; |
506 | memreq_t mem; | 513 | memreq_t mem; |
507 | int i, k; | 514 | int i, k; |
508 | 515 | ||
516 | cfg_mem = kmalloc(sizeof(struct smc_cfg_mem), GFP_KERNEL); | ||
517 | if (!cfg_mem) | ||
518 | return CS_OUT_OF_RESOURCE; | ||
519 | |||
520 | tuple = &cfg_mem->tuple; | ||
521 | parse = &cfg_mem->parse; | ||
522 | cf = &parse->cftable_entry; | ||
523 | buf = cfg_mem->buf; | ||
524 | |||
509 | link->conf.Attributes |= CONF_ENABLE_SPKR; | 525 | link->conf.Attributes |= CONF_ENABLE_SPKR; |
510 | link->conf.Status = CCSR_AUDIO_ENA; | 526 | link->conf.Status = CCSR_AUDIO_ENA; |
511 | link->irq.Attributes = | 527 | link->irq.Attributes = |
@@ -514,12 +530,12 @@ static int mhz_mfc_config(dev_link_t *link) | |||
514 | link->io.Attributes2 = IO_DATA_PATH_WIDTH_8; | 530 | link->io.Attributes2 = IO_DATA_PATH_WIDTH_8; |
515 | link->io.NumPorts2 = 8; | 531 | link->io.NumPorts2 = 8; |
516 | 532 | ||
517 | tuple.Attributes = tuple.TupleOffset = 0; | 533 | tuple->Attributes = tuple->TupleOffset = 0; |
518 | tuple.TupleData = (cisdata_t *)buf; | 534 | tuple->TupleData = (cisdata_t *)buf; |
519 | tuple.TupleDataMax = sizeof(buf); | 535 | tuple->TupleDataMax = 255; |
520 | tuple.DesiredTuple = CISTPL_CFTABLE_ENTRY; | 536 | tuple->DesiredTuple = CISTPL_CFTABLE_ENTRY; |
521 | 537 | ||
522 | i = first_tuple(link->handle, &tuple, &parse); | 538 | i = first_tuple(link->handle, tuple, parse); |
523 | /* The Megahertz combo cards have modem-like CIS entries, so | 539 | /* The Megahertz combo cards have modem-like CIS entries, so |
524 | we have to explicitly try a bunch of port combinations. */ | 540 | we have to explicitly try a bunch of port combinations. */ |
525 | while (i == CS_SUCCESS) { | 541 | while (i == CS_SUCCESS) { |
@@ -532,10 +548,10 @@ static int mhz_mfc_config(dev_link_t *link) | |||
532 | if (i == CS_SUCCESS) break; | 548 | if (i == CS_SUCCESS) break; |
533 | } | 549 | } |
534 | if (i == CS_SUCCESS) break; | 550 | if (i == CS_SUCCESS) break; |
535 | i = next_tuple(link->handle, &tuple, &parse); | 551 | i = next_tuple(link->handle, tuple, parse); |
536 | } | 552 | } |
537 | if (i != CS_SUCCESS) | 553 | if (i != CS_SUCCESS) |
538 | return i; | 554 | goto free_cfg_mem; |
539 | dev->base_addr = link->io.BasePort1; | 555 | dev->base_addr = link->io.BasePort1; |
540 | 556 | ||
541 | /* Allocate a memory window, for accessing the ISR */ | 557 | /* Allocate a memory window, for accessing the ISR */ |
@@ -544,7 +560,7 @@ static int mhz_mfc_config(dev_link_t *link) | |||
544 | req.AccessSpeed = 0; | 560 | req.AccessSpeed = 0; |
545 | i = pcmcia_request_window(&link->handle, &req, &link->win); | 561 | i = pcmcia_request_window(&link->handle, &req, &link->win); |
546 | if (i != CS_SUCCESS) | 562 | if (i != CS_SUCCESS) |
547 | return i; | 563 | goto free_cfg_mem; |
548 | smc->base = ioremap(req.Base, req.Size); | 564 | smc->base = ioremap(req.Base, req.Size); |
549 | mem.CardOffset = mem.Page = 0; | 565 | mem.CardOffset = mem.Page = 0; |
550 | if (smc->manfid == MANFID_MOTOROLA) | 566 | if (smc->manfid == MANFID_MOTOROLA) |
@@ -556,6 +572,8 @@ static int mhz_mfc_config(dev_link_t *link) | |||
556 | && (smc->cardid == PRODID_MEGAHERTZ_EM3288)) | 572 | && (smc->cardid == PRODID_MEGAHERTZ_EM3288)) |
557 | mhz_3288_power(link); | 573 | mhz_3288_power(link); |
558 | 574 | ||
575 | free_cfg_mem: | ||
576 | kfree(cfg_mem); | ||
559 | return i; | 577 | return i; |
560 | } | 578 | } |
561 | 579 | ||
@@ -563,39 +581,61 @@ static int mhz_setup(dev_link_t *link) | |||
563 | { | 581 | { |
564 | client_handle_t handle = link->handle; | 582 | client_handle_t handle = link->handle; |
565 | struct net_device *dev = link->priv; | 583 | struct net_device *dev = link->priv; |
566 | tuple_t tuple; | 584 | struct smc_cfg_mem *cfg_mem; |
567 | cisparse_t parse; | 585 | tuple_t *tuple; |
568 | u_char buf[255], *station_addr; | 586 | cisparse_t *parse; |
587 | u_char *buf, *station_addr; | ||
588 | int rc; | ||
589 | |||
590 | cfg_mem = kmalloc(sizeof(struct smc_cfg_mem), GFP_KERNEL); | ||
591 | if (!cfg_mem) | ||
592 | return -1; | ||
593 | |||
594 | tuple = &cfg_mem->tuple; | ||
595 | parse = &cfg_mem->parse; | ||
596 | buf = cfg_mem->buf; | ||
569 | 597 | ||
570 | tuple.Attributes = tuple.TupleOffset = 0; | 598 | tuple->Attributes = tuple->TupleOffset = 0; |
571 | tuple.TupleData = buf; | 599 | tuple->TupleData = (cisdata_t *)buf; |
572 | tuple.TupleDataMax = sizeof(buf); | 600 | tuple->TupleDataMax = 255; |
573 | 601 | ||
574 | /* Read the station address from the CIS. It is stored as the last | 602 | /* Read the station address from the CIS. It is stored as the last |
575 | (fourth) string in the Version 1 Version/ID tuple. */ | 603 | (fourth) string in the Version 1 Version/ID tuple. */ |
576 | tuple.DesiredTuple = CISTPL_VERS_1; | 604 | tuple->DesiredTuple = CISTPL_VERS_1; |
577 | if (first_tuple(handle, &tuple, &parse) != CS_SUCCESS) | 605 | if (first_tuple(handle, tuple, parse) != CS_SUCCESS) { |
578 | return -1; | 606 | rc = -1; |
607 | goto free_cfg_mem; | ||
608 | } | ||
579 | /* Ugh -- the EM1144 card has two VERS_1 tuples!?! */ | 609 | /* Ugh -- the EM1144 card has two VERS_1 tuples!?! */ |
580 | if (next_tuple(handle, &tuple, &parse) != CS_SUCCESS) | 610 | if (next_tuple(handle, tuple, parse) != CS_SUCCESS) |
581 | first_tuple(handle, &tuple, &parse); | 611 | first_tuple(handle, tuple, parse); |
582 | if (parse.version_1.ns > 3) { | 612 | if (parse->version_1.ns > 3) { |
583 | station_addr = parse.version_1.str + parse.version_1.ofs[3]; | 613 | station_addr = parse->version_1.str + parse->version_1.ofs[3]; |
584 | if (cvt_ascii_address(dev, station_addr) == 0) | 614 | if (cvt_ascii_address(dev, station_addr) == 0) { |
585 | return 0; | 615 | rc = 0; |
616 | goto free_cfg_mem; | ||
617 | } | ||
586 | } | 618 | } |
587 | 619 | ||
588 | /* Another possibility: for the EM3288, in a special tuple */ | 620 | /* Another possibility: for the EM3288, in a special tuple */ |
589 | tuple.DesiredTuple = 0x81; | 621 | tuple->DesiredTuple = 0x81; |
590 | if (pcmcia_get_first_tuple(handle, &tuple) != CS_SUCCESS) | 622 | if (pcmcia_get_first_tuple(handle, tuple) != CS_SUCCESS) { |
591 | return -1; | 623 | rc = -1; |
592 | if (pcmcia_get_tuple_data(handle, &tuple) != CS_SUCCESS) | 624 | goto free_cfg_mem; |
593 | return -1; | 625 | } |
626 | if (pcmcia_get_tuple_data(handle, tuple) != CS_SUCCESS) { | ||
627 | rc = -1; | ||
628 | goto free_cfg_mem; | ||
629 | } | ||
594 | buf[12] = '\0'; | 630 | buf[12] = '\0'; |
595 | if (cvt_ascii_address(dev, buf) == 0) | 631 | if (cvt_ascii_address(dev, buf) == 0) { |
596 | return 0; | 632 | rc = 0; |
597 | 633 | goto free_cfg_mem; | |
598 | return -1; | 634 | } |
635 | rc = -1; | ||
636 | free_cfg_mem: | ||
637 | kfree(cfg_mem); | ||
638 | return rc; | ||
599 | } | 639 | } |
600 | 640 | ||
601 | /*====================================================================== | 641 | /*====================================================================== |
@@ -665,19 +705,29 @@ static int mot_setup(dev_link_t *link) | |||
665 | static int smc_config(dev_link_t *link) | 705 | static int smc_config(dev_link_t *link) |
666 | { | 706 | { |
667 | struct net_device *dev = link->priv; | 707 | struct net_device *dev = link->priv; |
668 | tuple_t tuple; | 708 | struct smc_cfg_mem *cfg_mem; |
669 | cisparse_t parse; | 709 | tuple_t *tuple; |
670 | u_char buf[255]; | 710 | cisparse_t *parse; |
671 | cistpl_cftable_entry_t *cf = &parse.cftable_entry; | 711 | cistpl_cftable_entry_t *cf; |
712 | u_char *buf; | ||
672 | int i; | 713 | int i; |
673 | 714 | ||
674 | tuple.Attributes = tuple.TupleOffset = 0; | 715 | cfg_mem = kmalloc(sizeof(struct smc_cfg_mem), GFP_KERNEL); |
675 | tuple.TupleData = (cisdata_t *)buf; | 716 | if (!cfg_mem) |
676 | tuple.TupleDataMax = sizeof(buf); | 717 | return CS_OUT_OF_RESOURCE; |
677 | tuple.DesiredTuple = CISTPL_CFTABLE_ENTRY; | 718 | |
719 | tuple = &cfg_mem->tuple; | ||
720 | parse = &cfg_mem->parse; | ||
721 | cf = &parse->cftable_entry; | ||
722 | buf = cfg_mem->buf; | ||
723 | |||
724 | tuple->Attributes = tuple->TupleOffset = 0; | ||
725 | tuple->TupleData = (cisdata_t *)buf; | ||
726 | tuple->TupleDataMax = 255; | ||
727 | tuple->DesiredTuple = CISTPL_CFTABLE_ENTRY; | ||
678 | 728 | ||
679 | link->io.NumPorts1 = 16; | 729 | link->io.NumPorts1 = 16; |
680 | i = first_tuple(link->handle, &tuple, &parse); | 730 | i = first_tuple(link->handle, tuple, parse); |
681 | while (i != CS_NO_MORE_ITEMS) { | 731 | while (i != CS_NO_MORE_ITEMS) { |
682 | if (i == CS_SUCCESS) { | 732 | if (i == CS_SUCCESS) { |
683 | link->conf.ConfigIndex = cf->index; | 733 | link->conf.ConfigIndex = cf->index; |
@@ -686,10 +736,12 @@ static int smc_config(dev_link_t *link) | |||
686 | i = pcmcia_request_io(link->handle, &link->io); | 736 | i = pcmcia_request_io(link->handle, &link->io); |
687 | if (i == CS_SUCCESS) break; | 737 | if (i == CS_SUCCESS) break; |
688 | } | 738 | } |
689 | i = next_tuple(link->handle, &tuple, &parse); | 739 | i = next_tuple(link->handle, tuple, parse); |
690 | } | 740 | } |
691 | if (i == CS_SUCCESS) | 741 | if (i == CS_SUCCESS) |
692 | dev->base_addr = link->io.BasePort1; | 742 | dev->base_addr = link->io.BasePort1; |
743 | |||
744 | kfree(cfg_mem); | ||
693 | return i; | 745 | return i; |
694 | } | 746 | } |
695 | 747 | ||
@@ -697,41 +749,58 @@ static int smc_setup(dev_link_t *link) | |||
697 | { | 749 | { |
698 | client_handle_t handle = link->handle; | 750 | client_handle_t handle = link->handle; |
699 | struct net_device *dev = link->priv; | 751 | struct net_device *dev = link->priv; |
700 | tuple_t tuple; | 752 | struct smc_cfg_mem *cfg_mem; |
701 | cisparse_t parse; | 753 | tuple_t *tuple; |
754 | cisparse_t *parse; | ||
702 | cistpl_lan_node_id_t *node_id; | 755 | cistpl_lan_node_id_t *node_id; |
703 | u_char buf[255], *station_addr; | 756 | u_char *buf, *station_addr; |
704 | int i; | 757 | int i, rc; |
758 | |||
759 | cfg_mem = kmalloc(sizeof(struct smc_cfg_mem), GFP_KERNEL); | ||
760 | if (!cfg_mem) | ||
761 | return CS_OUT_OF_RESOURCE; | ||
705 | 762 | ||
706 | tuple.Attributes = tuple.TupleOffset = 0; | 763 | tuple = &cfg_mem->tuple; |
707 | tuple.TupleData = buf; | 764 | parse = &cfg_mem->parse; |
708 | tuple.TupleDataMax = sizeof(buf); | 765 | buf = cfg_mem->buf; |
766 | |||
767 | tuple->Attributes = tuple->TupleOffset = 0; | ||
768 | tuple->TupleData = (cisdata_t *)buf; | ||
769 | tuple->TupleDataMax = 255; | ||
709 | 770 | ||
710 | /* Check for a LAN function extension tuple */ | 771 | /* Check for a LAN function extension tuple */ |
711 | tuple.DesiredTuple = CISTPL_FUNCE; | 772 | tuple->DesiredTuple = CISTPL_FUNCE; |
712 | i = first_tuple(handle, &tuple, &parse); | 773 | i = first_tuple(handle, tuple, parse); |
713 | while (i == CS_SUCCESS) { | 774 | while (i == CS_SUCCESS) { |
714 | if (parse.funce.type == CISTPL_FUNCE_LAN_NODE_ID) | 775 | if (parse->funce.type == CISTPL_FUNCE_LAN_NODE_ID) |
715 | break; | 776 | break; |
716 | i = next_tuple(handle, &tuple, &parse); | 777 | i = next_tuple(handle, tuple, parse); |
717 | } | 778 | } |
718 | if (i == CS_SUCCESS) { | 779 | if (i == CS_SUCCESS) { |
719 | node_id = (cistpl_lan_node_id_t *)parse.funce.data; | 780 | node_id = (cistpl_lan_node_id_t *)parse->funce.data; |
720 | if (node_id->nb == 6) { | 781 | if (node_id->nb == 6) { |
721 | for (i = 0; i < 6; i++) | 782 | for (i = 0; i < 6; i++) |
722 | dev->dev_addr[i] = node_id->id[i]; | 783 | dev->dev_addr[i] = node_id->id[i]; |
723 | return 0; | 784 | rc = 0; |
785 | goto free_cfg_mem; | ||
724 | } | 786 | } |
725 | } | 787 | } |
726 | /* Try the third string in the Version 1 Version/ID tuple. */ | 788 | /* Try the third string in the Version 1 Version/ID tuple. */ |
727 | tuple.DesiredTuple = CISTPL_VERS_1; | 789 | tuple->DesiredTuple = CISTPL_VERS_1; |
728 | if (first_tuple(handle, &tuple, &parse) != CS_SUCCESS) | 790 | if (first_tuple(handle, tuple, parse) != CS_SUCCESS) { |
729 | return -1; | 791 | rc = -1; |
730 | station_addr = parse.version_1.str + parse.version_1.ofs[2]; | 792 | goto free_cfg_mem; |
731 | if (cvt_ascii_address(dev, station_addr) == 0) | 793 | } |
732 | return 0; | 794 | station_addr = parse->version_1.str + parse->version_1.ofs[2]; |
795 | if (cvt_ascii_address(dev, station_addr) == 0) { | ||
796 | rc = 0; | ||
797 | goto free_cfg_mem; | ||
798 | } | ||
733 | 799 | ||
734 | return -1; | 800 | rc = -1; |
801 | free_cfg_mem: | ||
802 | kfree(cfg_mem); | ||
803 | return rc; | ||
735 | } | 804 | } |
736 | 805 | ||
737 | /*====================================================================*/ | 806 | /*====================================================================*/ |
@@ -773,26 +842,36 @@ static int osi_setup(dev_link_t *link, u_short manfid, u_short cardid) | |||
773 | { | 842 | { |
774 | client_handle_t handle = link->handle; | 843 | client_handle_t handle = link->handle; |
775 | struct net_device *dev = link->priv; | 844 | struct net_device *dev = link->priv; |
776 | tuple_t tuple; | 845 | struct smc_cfg_mem *cfg_mem; |
777 | u_char buf[255]; | 846 | tuple_t *tuple; |
778 | int i; | 847 | u_char *buf; |
848 | int i, rc; | ||
849 | |||
850 | cfg_mem = kmalloc(sizeof(struct smc_cfg_mem), GFP_KERNEL); | ||
851 | if (!cfg_mem) | ||
852 | return -1; | ||
853 | |||
854 | tuple = &cfg_mem->tuple; | ||
855 | buf = cfg_mem->buf; | ||
779 | 856 | ||
780 | tuple.Attributes = TUPLE_RETURN_COMMON; | 857 | tuple->Attributes = TUPLE_RETURN_COMMON; |
781 | tuple.TupleData = buf; | 858 | tuple->TupleData = (cisdata_t *)buf; |
782 | tuple.TupleDataMax = sizeof(buf); | 859 | tuple->TupleDataMax = 255; |
783 | tuple.TupleOffset = 0; | 860 | tuple->TupleOffset = 0; |
784 | 861 | ||
785 | /* Read the station address from tuple 0x90, subtuple 0x04 */ | 862 | /* Read the station address from tuple 0x90, subtuple 0x04 */ |
786 | tuple.DesiredTuple = 0x90; | 863 | tuple->DesiredTuple = 0x90; |
787 | i = pcmcia_get_first_tuple(handle, &tuple); | 864 | i = pcmcia_get_first_tuple(handle, tuple); |
788 | while (i == CS_SUCCESS) { | 865 | while (i == CS_SUCCESS) { |
789 | i = pcmcia_get_tuple_data(handle, &tuple); | 866 | i = pcmcia_get_tuple_data(handle, tuple); |
790 | if ((i != CS_SUCCESS) || (buf[0] == 0x04)) | 867 | if ((i != CS_SUCCESS) || (buf[0] == 0x04)) |
791 | break; | 868 | break; |
792 | i = pcmcia_get_next_tuple(handle, &tuple); | 869 | i = pcmcia_get_next_tuple(handle, tuple); |
870 | } | ||
871 | if (i != CS_SUCCESS) { | ||
872 | rc = -1; | ||
873 | goto free_cfg_mem; | ||
793 | } | 874 | } |
794 | if (i != CS_SUCCESS) | ||
795 | return -1; | ||
796 | for (i = 0; i < 6; i++) | 875 | for (i = 0; i < 6; i++) |
797 | dev->dev_addr[i] = buf[i+2]; | 876 | dev->dev_addr[i] = buf[i+2]; |
798 | 877 | ||
@@ -814,8 +893,10 @@ static int osi_setup(dev_link_t *link, u_short manfid, u_short cardid) | |||
814 | inw(link->io.BasePort1 + OSITECH_AUI_PWR), | 893 | inw(link->io.BasePort1 + OSITECH_AUI_PWR), |
815 | inw(link->io.BasePort1 + OSITECH_RESET_ISR)); | 894 | inw(link->io.BasePort1 + OSITECH_RESET_ISR)); |
816 | } | 895 | } |
817 | 896 | rc = 0; | |
818 | return 0; | 897 | free_cfg_mem: |
898 | kfree(cfg_mem); | ||
899 | return rc; | ||
819 | } | 900 | } |
820 | 901 | ||
821 | /*====================================================================== | 902 | /*====================================================================== |
@@ -887,9 +968,10 @@ static void smc91c92_config(dev_link_t *link) | |||
887 | client_handle_t handle = link->handle; | 968 | client_handle_t handle = link->handle; |
888 | struct net_device *dev = link->priv; | 969 | struct net_device *dev = link->priv; |
889 | struct smc_private *smc = netdev_priv(dev); | 970 | struct smc_private *smc = netdev_priv(dev); |
890 | tuple_t tuple; | 971 | struct smc_cfg_mem *cfg_mem; |
891 | cisparse_t parse; | 972 | tuple_t *tuple; |
892 | u_short buf[32]; | 973 | cisparse_t *parse; |
974 | u_char *buf; | ||
893 | char *name; | 975 | char *name; |
894 | int i, j, rev; | 976 | int i, j, rev; |
895 | kio_addr_t ioaddr; | 977 | kio_addr_t ioaddr; |
@@ -897,21 +979,29 @@ static void smc91c92_config(dev_link_t *link) | |||
897 | 979 | ||
898 | DEBUG(0, "smc91c92_config(0x%p)\n", link); | 980 | DEBUG(0, "smc91c92_config(0x%p)\n", link); |
899 | 981 | ||
900 | tuple.Attributes = tuple.TupleOffset = 0; | 982 | cfg_mem = kmalloc(sizeof(struct smc_cfg_mem), GFP_KERNEL); |
901 | tuple.TupleData = (cisdata_t *)buf; | 983 | if (!cfg_mem) |
902 | tuple.TupleDataMax = sizeof(buf); | 984 | goto config_failed; |
903 | 985 | ||
904 | tuple.DesiredTuple = CISTPL_CONFIG; | 986 | tuple = &cfg_mem->tuple; |
905 | i = first_tuple(handle, &tuple, &parse); | 987 | parse = &cfg_mem->parse; |
906 | CS_EXIT_TEST(i, ParseTuple, config_failed); | 988 | buf = cfg_mem->buf; |
907 | link->conf.ConfigBase = parse.config.base; | ||
908 | link->conf.Present = parse.config.rmask[0]; | ||
909 | 989 | ||
910 | tuple.DesiredTuple = CISTPL_MANFID; | 990 | tuple->Attributes = tuple->TupleOffset = 0; |
911 | tuple.Attributes = TUPLE_RETURN_COMMON; | 991 | tuple->TupleData = (cisdata_t *)buf; |
912 | if (first_tuple(handle, &tuple, &parse) == CS_SUCCESS) { | 992 | tuple->TupleDataMax = 64; |
913 | smc->manfid = parse.manfid.manf; | 993 | |
914 | smc->cardid = parse.manfid.card; | 994 | tuple->DesiredTuple = CISTPL_CONFIG; |
995 | i = first_tuple(handle, tuple, parse); | ||
996 | CS_EXIT_TEST(i, ParseTuple, config_failed); | ||
997 | link->conf.ConfigBase = parse->config.base; | ||
998 | link->conf.Present = parse->config.rmask[0]; | ||
999 | |||
1000 | tuple->DesiredTuple = CISTPL_MANFID; | ||
1001 | tuple->Attributes = TUPLE_RETURN_COMMON; | ||
1002 | if (first_tuple(handle, tuple, parse) == CS_SUCCESS) { | ||
1003 | smc->manfid = parse->manfid.manf; | ||
1004 | smc->cardid = parse->manfid.card; | ||
915 | } | 1005 | } |
916 | 1006 | ||
917 | /* Configure card */ | 1007 | /* Configure card */ |
@@ -1046,7 +1136,7 @@ static void smc91c92_config(dev_link_t *link) | |||
1046 | printk(KERN_NOTICE " No MII transceivers found!\n"); | 1136 | printk(KERN_NOTICE " No MII transceivers found!\n"); |
1047 | } | 1137 | } |
1048 | } | 1138 | } |
1049 | 1139 | kfree(cfg_mem); | |
1050 | return; | 1140 | return; |
1051 | 1141 | ||
1052 | config_undo: | 1142 | config_undo: |
@@ -1054,6 +1144,7 @@ config_undo: | |||
1054 | config_failed: /* CS_EXIT_TEST() calls jump to here... */ | 1144 | config_failed: /* CS_EXIT_TEST() calls jump to here... */ |
1055 | smc91c92_release(link); | 1145 | smc91c92_release(link); |
1056 | link->state &= ~DEV_CONFIG_PENDING; | 1146 | link->state &= ~DEV_CONFIG_PENDING; |
1147 | kfree(cfg_mem); | ||
1057 | 1148 | ||
1058 | } /* smc91c92_config */ | 1149 | } /* smc91c92_config */ |
1059 | 1150 | ||
@@ -2236,6 +2327,38 @@ static int smc_ioctl (struct net_device *dev, struct ifreq *rq, int cmd) | |||
2236 | return rc; | 2327 | return rc; |
2237 | } | 2328 | } |
2238 | 2329 | ||
2330 | static struct pcmcia_device_id smc91c92_ids[] = { | ||
2331 | PCMCIA_PFC_DEVICE_MANF_CARD(0, 0x0109, 0x0501), | ||
2332 | PCMCIA_PFC_DEVICE_MANF_CARD(0, 0x0140, 0x000a), | ||
2333 | PCMCIA_PFC_DEVICE_PROD_ID123(0, "MEGAHERTZ", "CC/XJEM3288", "DATA/FAX/CELL ETHERNET MODEM", 0xf510db04, 0x04cd2988, 0x46a52d63), | ||
2334 | PCMCIA_PFC_DEVICE_PROD_ID123(0, "MEGAHERTZ", "CC/XJEM3336", "DATA/FAX/CELL ETHERNET MODEM", 0xf510db04, 0x0143b773, 0x46a52d63), | ||
2335 | PCMCIA_PFC_DEVICE_PROD_ID123(0, "MEGAHERTZ", "EM1144T", "PCMCIA MODEM", 0xf510db04, 0x856d66c8, 0xbd6c43ef), | ||
2336 | PCMCIA_PFC_DEVICE_PROD_ID123(0, "MEGAHERTZ", "XJEM1144/CCEM1144", "PCMCIA MODEM", 0xf510db04, 0x52d21e1e, 0xbd6c43ef), | ||
2337 | PCMCIA_PFC_DEVICE_PROD_ID12(0, "Gateway 2000", "XJEM3336", 0xdd9989be, 0x662c394c), | ||
2338 | PCMCIA_PFC_DEVICE_PROD_ID12(0, "MEGAHERTZ", "XJEM1144/CCEM1144", 0xf510db04, 0x52d21e1e), | ||
2339 | PCMCIA_PFC_DEVICE_PROD_ID12(0, "Ositech", "Trumpcard", 0x0c2f80cd, 0x0573c29f), | ||
2340 | PCMCIA_PFC_DEVICE_PROD_ID12(0, "Ositech", "Trumpcard", 0x0c2f80cd, 0x0573c29f), | ||
2341 | PCMCIA_MFC_DEVICE_MANF_CARD(0, 0x016c, 0x0020), | ||
2342 | PCMCIA_DEVICE_MANF_CARD(0x016c, 0x0023), | ||
2343 | PCMCIA_DEVICE_PROD_ID123("BASICS by New Media Corporation", "Ethernet", "SMC91C94", 0x23c78a9d, 0x00b2e941, 0xcef397fb), | ||
2344 | PCMCIA_DEVICE_PROD_ID12("ARGOSY", "Fast Ethernet PCCard", 0x78f308dc, 0xdcea68bc), | ||
2345 | PCMCIA_DEVICE_PROD_ID12("dit Co., Ltd.", "PC Card-10/100BTX", 0xe59365c8, 0x6a2161d1), | ||
2346 | PCMCIA_DEVICE_PROD_ID12("DYNALINK", "L100C", 0x6a26d1cf, 0xc16ce9c5), | ||
2347 | PCMCIA_DEVICE_PROD_ID12("Farallon", "Farallon Enet", 0x58d93fc4, 0x244734e9), | ||
2348 | PCMCIA_DEVICE_PROD_ID12("Megahertz", "CC10BT/2", 0x33234748, 0x3c95b953), | ||
2349 | PCMCIA_DEVICE_PROD_ID12("MELCO/SMC", "LPC-TX", 0xa2cd8e6d, 0x42da662a), | ||
2350 | PCMCIA_DEVICE_PROD_ID12("Ositech", "Trumpcard", 0x0c2f80cd, 0x0573c29f), | ||
2351 | PCMCIA_DEVICE_PROD_ID12("Ositech", "Trumpcard", 0x0c2f80cd, 0x0573c29f), | ||
2352 | PCMCIA_DEVICE_PROD_ID12("PCMCIA", "Fast Ethernet PCCard", 0x281f1c5d, 0xdcea68bc), | ||
2353 | PCMCIA_DEVICE_PROD_ID12("Psion", "10Mb Ethernet", 0x4ef00b21, 0x844be9e9), | ||
2354 | PCMCIA_DEVICE_PROD_ID12("SMC", "EtherEZ Ethernet 8020", 0xc4f8b18b, 0x4a0eeb2d), | ||
2355 | /* These conflict with other cards! */ | ||
2356 | /* PCMCIA_DEVICE_MANF_CARD(0x0186, 0x0100), */ | ||
2357 | /* PCMCIA_DEVICE_MANF_CARD(0x8a01, 0xc1ab), */ | ||
2358 | PCMCIA_DEVICE_NULL, | ||
2359 | }; | ||
2360 | MODULE_DEVICE_TABLE(pcmcia, smc91c92_ids); | ||
2361 | |||
2239 | static struct pcmcia_driver smc91c92_cs_driver = { | 2362 | static struct pcmcia_driver smc91c92_cs_driver = { |
2240 | .owner = THIS_MODULE, | 2363 | .owner = THIS_MODULE, |
2241 | .drv = { | 2364 | .drv = { |
@@ -2243,6 +2366,7 @@ static struct pcmcia_driver smc91c92_cs_driver = { | |||
2243 | }, | 2366 | }, |
2244 | .attach = smc91c92_attach, | 2367 | .attach = smc91c92_attach, |
2245 | .detach = smc91c92_detach, | 2368 | .detach = smc91c92_detach, |
2369 | .id_table = smc91c92_ids, | ||
2246 | }; | 2370 | }; |
2247 | 2371 | ||
2248 | static int __init init_smc91c92_cs(void) | 2372 | static int __init init_smc91c92_cs(void) |
diff --git a/drivers/net/pcmcia/xirc2ps_cs.c b/drivers/net/pcmcia/xirc2ps_cs.c index 58177d67ea12..0cd225e1595c 100644 --- a/drivers/net/pcmcia/xirc2ps_cs.c +++ b/drivers/net/pcmcia/xirc2ps_cs.c | |||
@@ -1983,6 +1983,33 @@ do_stop(struct net_device *dev) | |||
1983 | return 0; | 1983 | return 0; |
1984 | } | 1984 | } |
1985 | 1985 | ||
1986 | static struct pcmcia_device_id xirc2ps_ids[] = { | ||
1987 | PCMCIA_PFC_DEVICE_MANF_CARD(0, 0x0089, 0x110a), | ||
1988 | PCMCIA_PFC_DEVICE_MANF_CARD(0, 0x0138, 0x110a), | ||
1989 | PCMCIA_PFC_DEVICE_PROD_ID13(0, "Xircom", "CEM28", 0x2e3ee845, 0x0ea978ea), | ||
1990 | PCMCIA_PFC_DEVICE_PROD_ID13(0, "Xircom", "CEM33", 0x2e3ee845, 0x80609023), | ||
1991 | PCMCIA_PFC_DEVICE_PROD_ID13(0, "Xircom", "CEM56", 0x2e3ee845, 0xa650c32a), | ||
1992 | PCMCIA_PFC_DEVICE_PROD_ID13(0, "Xircom", "REM10", 0x2e3ee845, 0x76df1d29), | ||
1993 | PCMCIA_PFC_DEVICE_PROD_ID13(0, "Xircom", "XEM5600", 0x2e3ee845, 0xf1403719), | ||
1994 | PCMCIA_PFC_DEVICE_PROD_ID12(0, "Xircom", "CreditCard Ethernet", 0x2e3ee845, 0xc0e778c2), | ||
1995 | PCMCIA_DEVICE_MANF_CARD(0x01bf, 0x010a), | ||
1996 | PCMCIA_DEVICE_PROD_ID13("Toshiba Information Systems", "TPCENET", 0x1b3b94fe, 0xf381c1a2), | ||
1997 | PCMCIA_DEVICE_PROD_ID13("Xircom", "CE3-10/100", 0x2e3ee845, 0x0ec0ac37), | ||
1998 | PCMCIA_DEVICE_PROD_ID13("Xircom", "PS-CE2-10", 0x2e3ee845, 0x947d9073), | ||
1999 | PCMCIA_DEVICE_PROD_ID13("Xircom", "R2E-100BTX", 0x2e3ee845, 0x2464a6e3), | ||
2000 | PCMCIA_DEVICE_PROD_ID13("Xircom", "RE-10", 0x2e3ee845, 0x3e08d609), | ||
2001 | PCMCIA_DEVICE_PROD_ID13("Xircom", "XE2000", 0x2e3ee845, 0xf7188e46), | ||
2002 | PCMCIA_DEVICE_PROD_ID12("Compaq", "Ethernet LAN Card", 0x54f7c49c, 0x9fd2f0a2), | ||
2003 | PCMCIA_DEVICE_PROD_ID12("Compaq", "Netelligent 10/100 PC Card", 0x54f7c49c, 0xefe96769), | ||
2004 | PCMCIA_DEVICE_PROD_ID12("Intel", "EtherExpress(TM) PRO/100 PC Card Mobile Adapter16", 0x816cc815, 0x174397db), | ||
2005 | PCMCIA_DEVICE_PROD_ID12("Toshiba", "10/100 Ethernet PC Card", 0x44a09d9c, 0xb44deecf), | ||
2006 | /* also matches CFE-10 cards! */ | ||
2007 | /* PCMCIA_DEVICE_MANF_CARD(0x0105, 0x010a), */ | ||
2008 | PCMCIA_DEVICE_NULL, | ||
2009 | }; | ||
2010 | MODULE_DEVICE_TABLE(pcmcia, xirc2ps_ids); | ||
2011 | |||
2012 | |||
1986 | static struct pcmcia_driver xirc2ps_cs_driver = { | 2013 | static struct pcmcia_driver xirc2ps_cs_driver = { |
1987 | .owner = THIS_MODULE, | 2014 | .owner = THIS_MODULE, |
1988 | .drv = { | 2015 | .drv = { |
@@ -1990,6 +2017,7 @@ static struct pcmcia_driver xirc2ps_cs_driver = { | |||
1990 | }, | 2017 | }, |
1991 | .attach = xirc2ps_attach, | 2018 | .attach = xirc2ps_attach, |
1992 | .detach = xirc2ps_detach, | 2019 | .detach = xirc2ps_detach, |
2020 | .id_table = xirc2ps_ids, | ||
1993 | }; | 2021 | }; |
1994 | 2022 | ||
1995 | static int __init | 2023 | static int __init |