aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKen Kawasaki <ken_kawasaki@spring.nifty.jp>2009-05-01 22:21:26 -0400
committerDavid S. Miller <davem@davemloft.net>2009-05-01 22:21:26 -0400
commitf0a3a1538d57dfb51c73d012cbb72f985cd419aa (patch)
tree660d030b3d55a98f0500d45fa4c678a9508e5f46
parent88d7d8b00cdc3117150faab4c4ace6d464b71c22 (diff)
3c589_cs: add cis(firmware) of 3Com multifunction pcmcia card
3c589_cs,3c574_cs,serial_cs: (1)add cis(firmware) of 3Com lan&modem mulitifunction pcmcia card. (2)load correct configuration register for 3Com card Signed-off-by: Ken Kawasaki <ken_kawasaki@spring.nifty.jp> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/pcmcia/3c574_cs.c2
-rw-r--r--drivers/net/pcmcia/3c589_cs.c4
-rw-r--r--drivers/serial/serial_cs.c22
-rw-r--r--firmware/Makefile2
-rw-r--r--firmware/WHENCE20
-rw-r--r--firmware/cis/3CCFEM556.cis.ihex13
-rw-r--r--firmware/cis/3CXEM556.cis.ihex13
7 files changed, 68 insertions, 8 deletions
diff --git a/drivers/net/pcmcia/3c574_cs.c b/drivers/net/pcmcia/3c574_cs.c
index 8f3872b8985..f35c609ba02 100644
--- a/drivers/net/pcmcia/3c574_cs.c
+++ b/drivers/net/pcmcia/3c574_cs.c
@@ -1195,7 +1195,7 @@ static int el3_close(struct net_device *dev)
1195 1195
1196static struct pcmcia_device_id tc574_ids[] = { 1196static struct pcmcia_device_id tc574_ids[] = {
1197 PCMCIA_DEVICE_MANF_CARD(0x0101, 0x0574), 1197 PCMCIA_DEVICE_MANF_CARD(0x0101, 0x0574),
1198 PCMCIA_MFC_DEVICE_CIS_MANF_CARD(0, 0x0101, 0x0556, "3CCFEM556.cis"), 1198 PCMCIA_MFC_DEVICE_CIS_MANF_CARD(0, 0x0101, 0x0556, "cis/3CCFEM556.cis"),
1199 PCMCIA_DEVICE_NULL, 1199 PCMCIA_DEVICE_NULL,
1200}; 1200};
1201MODULE_DEVICE_TABLE(pcmcia, tc574_ids); 1201MODULE_DEVICE_TABLE(pcmcia, tc574_ids);
diff --git a/drivers/net/pcmcia/3c589_cs.c b/drivers/net/pcmcia/3c589_cs.c
index cdf661a6092..ec7cf5ac4f0 100644
--- a/drivers/net/pcmcia/3c589_cs.c
+++ b/drivers/net/pcmcia/3c589_cs.c
@@ -967,8 +967,8 @@ static struct pcmcia_device_id tc589_ids[] = {
967 PCMCIA_MFC_DEVICE_PROD_ID1(0, "Motorola MARQUIS", 0xf03e4e77), 967 PCMCIA_MFC_DEVICE_PROD_ID1(0, "Motorola MARQUIS", 0xf03e4e77),
968 PCMCIA_DEVICE_MANF_CARD(0x0101, 0x0589), 968 PCMCIA_DEVICE_MANF_CARD(0x0101, 0x0589),
969 PCMCIA_DEVICE_PROD_ID12("Farallon", "ENet", 0x58d93fc4, 0x992c2202), 969 PCMCIA_DEVICE_PROD_ID12("Farallon", "ENet", 0x58d93fc4, 0x992c2202),
970 PCMCIA_MFC_DEVICE_CIS_MANF_CARD(0, 0x0101, 0x0035, "3CXEM556.cis"), 970 PCMCIA_MFC_DEVICE_CIS_MANF_CARD(0, 0x0101, 0x0035, "cis/3CXEM556.cis"),
971 PCMCIA_MFC_DEVICE_CIS_MANF_CARD(0, 0x0101, 0x003d, "3CXEM556.cis"), 971 PCMCIA_MFC_DEVICE_CIS_MANF_CARD(0, 0x0101, 0x003d, "cis/3CXEM556.cis"),
972 PCMCIA_DEVICE_NULL, 972 PCMCIA_DEVICE_NULL,
973}; 973};
974MODULE_DEVICE_TABLE(pcmcia, tc589_ids); 974MODULE_DEVICE_TABLE(pcmcia, tc589_ids);
diff --git a/drivers/serial/serial_cs.c b/drivers/serial/serial_cs.c
index 7546aa887fa..79c9c5f5cdb 100644
--- a/drivers/serial/serial_cs.c
+++ b/drivers/serial/serial_cs.c
@@ -681,7 +681,7 @@ static int serial_config(struct pcmcia_device * link)
681 u_char *buf; 681 u_char *buf;
682 cisparse_t *parse; 682 cisparse_t *parse;
683 cistpl_cftable_entry_t *cf; 683 cistpl_cftable_entry_t *cf;
684 int i; 684 int i, last_ret, last_fn;
685 685
686 DEBUG(0, "serial_config(0x%p)\n", link); 686 DEBUG(0, "serial_config(0x%p)\n", link);
687 687
@@ -699,6 +699,16 @@ static int serial_config(struct pcmcia_device * link)
699 tuple->TupleDataMax = 255; 699 tuple->TupleDataMax = 255;
700 tuple->Attributes = 0; 700 tuple->Attributes = 0;
701 701
702 /* Get configuration register information */
703 tuple->DesiredTuple = CISTPL_CONFIG;
704 last_ret = first_tuple(link, tuple, parse);
705 if (last_ret != 0) {
706 last_fn = ParseTuple;
707 goto cs_failed;
708 }
709 link->conf.ConfigBase = parse->config.base;
710 link->conf.Present = parse->config.rmask[0];
711
702 /* Is this a compliant multifunction card? */ 712 /* Is this a compliant multifunction card? */
703 tuple->DesiredTuple = CISTPL_LONGLINK_MFC; 713 tuple->DesiredTuple = CISTPL_LONGLINK_MFC;
704 tuple->Attributes = TUPLE_RETURN_COMMON | TUPLE_RETURN_LINK; 714 tuple->Attributes = TUPLE_RETURN_COMMON | TUPLE_RETURN_LINK;
@@ -761,7 +771,9 @@ static int serial_config(struct pcmcia_device * link)
761 kfree(cfg_mem); 771 kfree(cfg_mem);
762 return 0; 772 return 0;
763 773
764 failed: 774cs_failed:
775 cs_error(link, last_fn, last_ret);
776failed:
765 serial_remove(link); 777 serial_remove(link);
766 kfree(cfg_mem); 778 kfree(cfg_mem);
767 return -ENODEV; 779 return -ENODEV;
@@ -863,10 +875,10 @@ static struct pcmcia_device_id serial_ids[] = {
863 PCMCIA_PFC_DEVICE_CIS_PROD_ID12(1, "LINKSYS", "PCMLM28", 0xf7cb0b07, 0x66881874, "PCMLM28.cis"), 875 PCMCIA_PFC_DEVICE_CIS_PROD_ID12(1, "LINKSYS", "PCMLM28", 0xf7cb0b07, 0x66881874, "PCMLM28.cis"),
864 PCMCIA_MFC_DEVICE_CIS_PROD_ID12(1, "DAYNA COMMUNICATIONS", "LAN AND MODEM MULTIFUNCTION", 0x8fdf8f89, 0xdd5ed9e8, "DP83903.cis"), 876 PCMCIA_MFC_DEVICE_CIS_PROD_ID12(1, "DAYNA COMMUNICATIONS", "LAN AND MODEM MULTIFUNCTION", 0x8fdf8f89, 0xdd5ed9e8, "DP83903.cis"),
865 PCMCIA_MFC_DEVICE_CIS_PROD_ID4(1, "NSC MF LAN/Modem", 0x58fc6056, "DP83903.cis"), 877 PCMCIA_MFC_DEVICE_CIS_PROD_ID4(1, "NSC MF LAN/Modem", 0x58fc6056, "DP83903.cis"),
866 PCMCIA_MFC_DEVICE_CIS_MANF_CARD(1, 0x0101, 0x0556, "3CCFEM556.cis"), 878 PCMCIA_MFC_DEVICE_CIS_MANF_CARD(1, 0x0101, 0x0556, "cis/3CCFEM556.cis"),
867 PCMCIA_MFC_DEVICE_CIS_MANF_CARD(1, 0x0175, 0x0000, "DP83903.cis"), 879 PCMCIA_MFC_DEVICE_CIS_MANF_CARD(1, 0x0175, 0x0000, "DP83903.cis"),
868 PCMCIA_MFC_DEVICE_CIS_MANF_CARD(1, 0x0101, 0x0035, "3CXEM556.cis"), 880 PCMCIA_MFC_DEVICE_CIS_MANF_CARD(1, 0x0101, 0x0035, "cis/3CXEM556.cis"),
869 PCMCIA_MFC_DEVICE_CIS_MANF_CARD(1, 0x0101, 0x003d, "3CXEM556.cis"), 881 PCMCIA_MFC_DEVICE_CIS_MANF_CARD(1, 0x0101, 0x003d, "cis/3CXEM556.cis"),
870 PCMCIA_DEVICE_CIS_PROD_ID12("Sierra Wireless", "AC850", 0xd85f6206, 0x42a2c018, "SW_8xx_SER.cis"), /* Sierra Wireless AC850 3G Network Adapter R1 */ 882 PCMCIA_DEVICE_CIS_PROD_ID12("Sierra Wireless", "AC850", 0xd85f6206, 0x42a2c018, "SW_8xx_SER.cis"), /* Sierra Wireless AC850 3G Network Adapter R1 */
871 PCMCIA_DEVICE_CIS_MANF_CARD(0x0192, 0x0710, "SW_7xx_SER.cis"), /* Sierra Wireless AC710/AC750 GPRS Network Adapter R1 */ 883 PCMCIA_DEVICE_CIS_MANF_CARD(0x0192, 0x0710, "SW_7xx_SER.cis"), /* Sierra Wireless AC710/AC750 GPRS Network Adapter R1 */
872 PCMCIA_DEVICE_CIS_MANF_CARD(0x0192, 0xa555, "SW_555_SER.cis"), /* Sierra Aircard 555 CDMA 1xrtt Modem -- pre update */ 884 PCMCIA_DEVICE_CIS_MANF_CARD(0x0192, 0xa555, "SW_555_SER.cis"), /* Sierra Aircard 555 CDMA 1xrtt Modem -- pre update */
diff --git a/firmware/Makefile b/firmware/Makefile
index 1c670e0c044..96c3dd8cc68 100644
--- a/firmware/Makefile
+++ b/firmware/Makefile
@@ -48,6 +48,8 @@ fw-shipped-$(CONFIG_E100) += e100/d101m_ucode.bin e100/d101s_ucode.bin \
48 e100/d102e_ucode.bin 48 e100/d102e_ucode.bin
49fw-shipped-$(CONFIG_MYRI_SBUS) += myricom/lanai.bin 49fw-shipped-$(CONFIG_MYRI_SBUS) += myricom/lanai.bin
50fw-shipped-$(CONFIG_PCMCIA_PCNET) += cis/LA-PCM.cis 50fw-shipped-$(CONFIG_PCMCIA_PCNET) += cis/LA-PCM.cis
51fw-shipped-$(CONFIG_PCMCIA_3C589) += cis/3CXEM556.cis
52fw-shipped-$(CONFIG_PCMCIA_3C574) += cis/3CCFEM556.cis
51fw-shipped-$(CONFIG_PCMCIA_SMC91C92) += ositech/Xilinx7OD.bin 53fw-shipped-$(CONFIG_PCMCIA_SMC91C92) += ositech/Xilinx7OD.bin
52fw-shipped-$(CONFIG_SCSI_ADVANSYS) += advansys/mcode.bin advansys/38C1600.bin \ 54fw-shipped-$(CONFIG_SCSI_ADVANSYS) += advansys/mcode.bin advansys/38C1600.bin \
53 advansys/3550.bin advansys/38C0800.bin 55 advansys/3550.bin advansys/38C0800.bin
diff --git a/firmware/WHENCE b/firmware/WHENCE
index c1e9c5ab694..bb8fda8f06b 100644
--- a/firmware/WHENCE
+++ b/firmware/WHENCE
@@ -586,6 +586,26 @@ Originally developed by the pcmcia-cs project
586 586
587-------------------------------------------------------------------------- 587--------------------------------------------------------------------------
588 588
589Driver: PCMCIA_3C589 - 3Com PCMCIA adapter
590
591File: cis/3CXEM556.cis
592
593Licence: GPL
594
595Originally developed by the pcmcia-cs project
596
597--------------------------------------------------------------------------
598
599Driver: PCMCIA_3C574 - 3Com PCMCIA adapter
600
601File: cis/3CCFEM556.cis
602
603Licence: GPL
604
605Originally developed by the pcmcia-cs project
606
607--------------------------------------------------------------------------
608
589Driver: PCMCIA_SMC91C92 - SMC 91Cxx PCMCIA 609Driver: PCMCIA_SMC91C92 - SMC 91Cxx PCMCIA
590 610
591File: ositech/Xilinx7OD.bin 611File: ositech/Xilinx7OD.bin
diff --git a/firmware/cis/3CCFEM556.cis.ihex b/firmware/cis/3CCFEM556.cis.ihex
new file mode 100644
index 00000000000..e4d92b173e1
--- /dev/null
+++ b/firmware/cis/3CCFEM556.cis.ihex
@@ -0,0 +1,13 @@
1:1000000001030000FF152D050033436F6D004D65A2
2:100010006761686572747A2033434346454D3535D0
3:1000200036004C414E202B2035366B204D6F6465D9
4:100030006D0000FF20040101560521020000060B9F
5:1000400002004D000000006B000000FF001303439E
6:100050004953210206001A060507001067021B0912
7:1000600087011901556430FFFFFF00130343495313
8:10007000210202001A060527001177021B09A701B9
9:090080001901552330FFFFFF00B8
10:00000001FF
11#
12# This card is MFC-compliant, but identifies itself as single function
13#
diff --git a/firmware/cis/3CXEM556.cis.ihex b/firmware/cis/3CXEM556.cis.ihex
new file mode 100644
index 00000000000..895010b230f
--- /dev/null
+++ b/firmware/cis/3CXEM556.cis.ihex
@@ -0,0 +1,13 @@
1:1000000001030000FF152C050033436F6D004D65A3
2:100010006761686572747A20334358454D353536CB
3:10002000004C414E202B2035366B204D6F64656DA2
4:100030000000FF20040101350021020000060B0230
5:10004000004C0000000069000000FF00130343495A
6:1000500053210206001A0501070008631B098701E6
7:100060001901556430FFFFFF001303434953210278
8:1000700002001A0501270009631B09A70119015590
9:060080002330FFFFFF002A
10:00000001FF
11#
12# This card is MFC-compliant, but identifies itself as single function
13#