- Timestamp:
- Jul 14, 2007, 7:13:46 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GPL/branches/alsa-resync1/alsa-kernel/drivers/serial-u16550.c
r210 r212 133 133 }; 134 134 135 static int snd_index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */136 static char * snd_id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */137 static int snd_enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE;/* Enable this card */138 static long snd_port[SNDRV_CARDS] = SNDRV_DEFAULT_PORT;/* 0x3f8,0x2f8,0x3e8,0x2e8 */139 static int snd_irq[SNDRV_CARDS] = SNDRV_DEFAULT_IRQ;/* 3,4,5,7,9,10,11,14,15 */135 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */ 136 static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */ 137 static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE; /* Enable this card */ 138 static long port[SNDRV_CARDS] = SNDRV_DEFAULT_PORT; /* 0x3f8,0x2f8,0x3e8,0x2e8 */ 139 static int irq[SNDRV_CARDS] = SNDRV_DEFAULT_IRQ; /* 3,4,5,7,9,10,11,14,15 */ 140 140 #ifdef TARGET_OS2 141 static int s nd_speed[SNDRV_CARDS] = {REPEAT_SNDRV(38400)}; /* 9600,19200,38400,57600,115200 */142 static int snd_base[SNDRV_CARDS] = {REPEAT_SNDRV(115200)}; /* baud base */143 static int snd_outs[SNDRV_CARDS] = {REPEAT_SNDRV(1)}; /* 1 to 16 */144 static int snd_ins[SNDRV_CARDS] = {REPEAT_SNDRV(1)}; /* 1 to 16 */145 static int snd_adaptor[SNDRV_CARDS] = {REPEAT_SNDRV(SNDRV_SERIAL_SOUNDCANVAS)};141 static int speed[SNDRV_CARDS] = {REPEAT_SNDRV(38400)}; /* 9600,19200,38400,57600,115200 */ 142 static int base[SNDRV_CARDS] = {REPEAT_SNDRV(115200)}; /* baud base */ 143 static int outs[SNDRV_CARDS] = {REPEAT_SNDRV(1)}; /* 1 to 16 */ 144 static int ins[SNDRV_CARDS] = {REPEAT_SNDRV(1)}; /* 1 to 16 */ 145 static int adaptor[SNDRV_CARDS] = {REPEAT_SNDRV(SNDRV_SERIAL_SOUNDCANVAS)}; 146 146 #else 147 static int s nd_speed[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 38400}; /* 9600,19200,38400,57600,115200 */148 static int snd_base[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 115200}; /* baud base */149 static int snd_outs[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 1}; /* 1 to 16 */150 static int snd_ins[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 1}; /* 1 to 16 */151 static int snd_adaptor[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = SNDRV_SERIAL_SOUNDCANVAS};147 static int speed[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 38400}; /* 9600,19200,38400,57600,115200 */ 148 static int base[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 115200}; /* baud base */ 149 static int outs[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 1}; /* 1 to 16 */ 150 static int ins[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 1}; /* 1 to 16 */ 151 static int adaptor[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = SNDRV_SERIAL_SOUNDCANVAS}; 152 152 #endif 153 153 154 MODULE_PARM( snd_index, "1-" __MODULE_STRING(SNDRV_CARDS) "i");155 MODULE_PARM_DESC( snd_index, "Index value for Serial MIDI.");156 MODULE_PARM_SYNTAX( snd_index, SNDRV_INDEX_DESC);157 MODULE_PARM( snd_id, "1-" __MODULE_STRING(SNDRV_CARDS) "s");158 MODULE_PARM_DESC( snd_id, "ID string for Serial MIDI.");159 MODULE_PARM_SYNTAX( snd_id, SNDRV_ID_DESC);160 MODULE_PARM( snd_enable, "1-" __MODULE_STRING(SNDRV_CARDS) "l");161 MODULE_PARM_DESC( snd_enable, "Enable UART16550A chip.");162 MODULE_PARM_SYNTAX( snd_enable, SNDRV_ENABLE_DESC);163 MODULE_PARM( snd_port, "1-" __MODULE_STRING(SNDRV_CARDS) "l");164 MODULE_PARM_DESC( snd_port, "Port # for UART16550A chip.");165 MODULE_PARM_SYNTAX( snd_port, SNDRV_PORT12_DESC);166 MODULE_PARM( snd_irq, "1-" __MODULE_STRING(SNDRV_CARDS) "i");167 MODULE_PARM_DESC( snd_irq, "IRQ # for UART16550A chip.");168 MODULE_PARM_SYNTAX( snd_irq, SNDRV_IRQ_DESC);169 MODULE_PARM(s nd_speed, "1-" __MODULE_STRING(SNDRV_CARDS) "i");170 MODULE_PARM_DESC(s nd_speed, "Speed in bauds.");171 MODULE_PARM_SYNTAX(s nd_speed, SNDRV_ENABLED ",allows:{9600,19200,38400,57600,115200},dialog:list");172 MODULE_PARM( snd_base, "1-" __MODULE_STRING(SNDRV_CARDS) "i");173 MODULE_PARM_DESC( snd_base, "Base for divisor in bauds.");174 MODULE_PARM_SYNTAX( snd_base, SNDRV_ENABLED ",allows:{57600,115200,230400,460800},dialog:list");175 MODULE_PARM( snd_outs, "1-" __MODULE_STRING(SNDRV_CARDS) "i");176 MODULE_PARM_DESC( snd_outs, "Number of MIDI outputs.");177 MODULE_PARM( snd_ins, "1-" __MODULE_STRING(SNDRV_CARDS) "i");178 MODULE_PARM_DESC( snd_ins, "Number of MIDI inputs.");179 180 MODULE_PARM_SYNTAX( snd_outs, SNDRV_ENABLED ",allows:{{1,16}},dialog:list");181 MODULE_PARM_SYNTAX( snd_ins, SNDRV_ENABLED ",allows:{{1,16}},dialog:list");182 MODULE_PARM( snd_adaptor, "1-" __MODULE_STRING(SNDRV_CARDS) "i");183 MODULE_PARM_DESC( snd_adaptor, "Type of adaptor.");184 MODULE_PARM_SYNTAX( snd_adaptor, SNDRV_ENABLED ",allows:{{0=Soundcanvas,1=MS-124T,2=MS-124W S/A,3=MS-124W M/B,4=Generic}},dialog:list");154 MODULE_PARM(index, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); 155 MODULE_PARM_DESC(index, "Index value for Serial MIDI."); 156 MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC); 157 MODULE_PARM(id, "1-" __MODULE_STRING(SNDRV_CARDS) "s"); 158 MODULE_PARM_DESC(id, "ID string for Serial MIDI."); 159 MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC); 160 MODULE_PARM(enable, "1-" __MODULE_STRING(SNDRV_CARDS) "l"); 161 MODULE_PARM_DESC(enable, "Enable UART16550A chip."); 162 MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC); 163 MODULE_PARM(port, "1-" __MODULE_STRING(SNDRV_CARDS) "l"); 164 MODULE_PARM_DESC(port, "Port # for UART16550A chip."); 165 MODULE_PARM_SYNTAX(port, SNDRV_PORT12_DESC); 166 MODULE_PARM(irq, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); 167 MODULE_PARM_DESC(irq, "IRQ # for UART16550A chip."); 168 MODULE_PARM_SYNTAX(irq, SNDRV_IRQ_DESC); 169 MODULE_PARM(speed, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); 170 MODULE_PARM_DESC(speed, "Speed in bauds."); 171 MODULE_PARM_SYNTAX(speed, SNDRV_ENABLED ",allows:{9600,19200,38400,57600,115200},dialog:list"); 172 MODULE_PARM(base, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); 173 MODULE_PARM_DESC(base, "Base for divisor in bauds."); 174 MODULE_PARM_SYNTAX(base, SNDRV_ENABLED ",allows:{57600,115200,230400,460800},dialog:list"); 175 MODULE_PARM(outs, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); 176 MODULE_PARM_DESC(outs, "Number of MIDI outputs."); 177 MODULE_PARM(ins, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); 178 MODULE_PARM_DESC(ins, "Number of MIDI inputs."); 179 180 MODULE_PARM_SYNTAX(outs, SNDRV_ENABLED ",allows:{{1,16}},dialog:list"); 181 MODULE_PARM_SYNTAX(ins, SNDRV_ENABLED ",allows:{{1,16}},dialog:list"); 182 MODULE_PARM(adaptor, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); 183 MODULE_PARM_DESC(adaptor, "Type of adaptor."); 184 MODULE_PARM_SYNTAX(adaptor, SNDRV_ENABLED ",allows:{{0=Soundcanvas,1=MS-124T,2=MS-124W S/A,3=MS-124W M/B,4=Generic}},dialog:list"); 185 185 186 186 /*#define SNDRV_SERIAL_MS124W_MB_NOCOMBO 1*/ /* Address outs as 0-3 instead of bitmap */ … … 945 945 int err; 946 946 947 if (!snd_enable[dev])947 if (!enable[dev]) 948 948 return -ENOENT; 949 949 950 switch (snd_adaptor[dev]) {950 switch (adaptor[dev]) { 951 951 case SNDRV_SERIAL_SOUNDCANVAS: 952 snd_ins[dev] = 1;952 ins[dev] = 1; 953 953 break; 954 954 case SNDRV_SERIAL_MS124T: 955 955 case SNDRV_SERIAL_MS124W_SA: 956 snd_outs[dev] = 1;957 snd_ins[dev] = 1;956 outs[dev] = 1; 957 ins[dev] = 1; 958 958 break; 959 959 case SNDRV_SERIAL_MS124W_MB: 960 snd_outs[dev] = 16;961 snd_ins[dev] = 1;960 outs[dev] = 16; 961 ins[dev] = 1; 962 962 break; 963 963 case SNDRV_SERIAL_GENERIC: … … 965 965 default: 966 966 snd_printk("Adaptor type is out of range 0-%d (%d)\n", 967 SNDRV_SERIAL_MAX_ADAPTOR, snd_adaptor[dev]);967 SNDRV_SERIAL_MAX_ADAPTOR, adaptor[dev]); 968 968 return -ENODEV; 969 969 } 970 970 971 if (snd_outs[dev] < 1 || snd_outs[dev] > SNDRV_SERIAL_MAX_OUTS) {971 if (outs[dev] < 1 || outs[dev] > SNDRV_SERIAL_MAX_OUTS) { 972 972 snd_printk("Count of outputs is out of range 1-%d (%d)\n", 973 SNDRV_SERIAL_MAX_OUTS, snd_outs[dev]);973 SNDRV_SERIAL_MAX_OUTS, outs[dev]); 974 974 return -ENODEV; 975 975 } 976 976 977 if ( snd_ins[dev] < 1 || snd_ins[dev] > SNDRV_SERIAL_MAX_INS) {977 if (ins[dev] < 1 || ins[dev] > SNDRV_SERIAL_MAX_INS) { 978 978 snd_printk("Count of inputs is out of range 1-%d (%d)\n", 979 SNDRV_SERIAL_MAX_INS, snd_ins[dev]);979 SNDRV_SERIAL_MAX_INS, ins[dev]); 980 980 return -ENODEV; 981 981 } 982 982 983 card = snd_card_new(snd_index[dev], snd_id[dev], THIS_MODULE, 0);983 card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 984 984 if (card == NULL) 985 985 return -ENOMEM; … … 988 988 strcpy(card->shortname, "Serial midi (uart16550A)"); 989 989 990 if ((err = snd_uart16550_detect(snd_port[dev])) <= 0) {990 if ((err = snd_uart16550_detect(port[dev])) <= 0) { 991 991 snd_card_free(card); 992 printk(KERN_ERR "no UART detected at 0x%lx\n", (long) snd_port[dev]);992 printk(KERN_ERR "no UART detected at 0x%lx\n", (long)port[dev]); 993 993 return err; 994 994 } 995 995 996 996 if ((err = snd_uart16550_create(card, 997 snd_port[dev],998 snd_irq[dev],999 snd_speed[dev],1000 snd_base[dev],1001 snd_adaptor[dev],997 port[dev], 998 irq[dev], 999 speed[dev], 1000 base[dev], 1001 adaptor[dev], 1002 1002 &uart)) < 0) { 1003 1003 snd_card_free(card); … … 1005 1005 } 1006 1006 1007 if ((err = snd_uart16550_rmidi(uart, 0, snd_outs[dev], snd_ins[dev], &uart->rmidi)) < 0) {1007 if ((err = snd_uart16550_rmidi(uart, 0, outs[dev], ins[dev], &uart->rmidi)) < 0) { 1008 1008 snd_card_free(card); 1009 1009 return err; … … 1016 1016 uart->speed, 1017 1017 (int)uart->divisor, 1018 snd_outs[dev],1019 snd_ins[dev],1018 outs[dev], 1019 ins[dev], 1020 1020 adaptor_names[uart->adaptor]); 1021 1021 … … 1062 1062 #ifndef MODULE 1063 1063 1064 /* format is: snd-serial= snd_enable,snd_index,snd_id,1065 snd_port,snd_irq,snd_speed,snd_base,snd_outs,1066 snd_ins,snd_adaptor */1064 /* format is: snd-serial=enable,index,id, 1065 port,irq,speed,base,outs, 1066 ins,adaptor */ 1067 1067 1068 1068 static int __init alsa_card_serial_setup(char *str) … … 1072 1072 if (nr_dev >= SNDRV_CARDS) 1073 1073 return 0; 1074 (void)(get_option(&str,&snd_enable[nr_dev]) == 2 &&1075 get_option(&str,&snd_index[nr_dev]) == 2 &&1076 get_id(&str,&snd_id[nr_dev]) == 2 &&1077 get_option(&str,(int *)&snd_port[nr_dev]) == 2 &&1078 get_option(&str,&snd_irq[nr_dev]) == 2 &&1079 get_option(&str,&snd_speed[nr_dev]) == 2 &&1080 get_option(&str,&snd_base[nr_dev]) == 2 &&1081 get_option(&str,&snd_outs[nr_dev]) == 2 &&1082 get_option(&str,& snd_ins[nr_dev]) == 2 &&1083 get_option(&str,&snd_adaptor[nr_dev]) == 2);1074 (void)(get_option(&str,&enable[nr_dev]) == 2 && 1075 get_option(&str,&index[nr_dev]) == 2 && 1076 get_id(&str,&id[nr_dev]) == 2 && 1077 get_option(&str,(int *)&port[nr_dev]) == 2 && 1078 get_option(&str,&irq[nr_dev]) == 2 && 1079 get_option(&str,&speed[nr_dev]) == 2 && 1080 get_option(&str,&base[nr_dev]) == 2 && 1081 get_option(&str,&outs[nr_dev]) == 2 && 1082 get_option(&str,&ins[nr_dev]) == 2 && 1083 get_option(&str,&adaptor[nr_dev]) == 2); 1084 1084 nr_dev++; 1085 1085 return 1;
Note:
See TracChangeset
for help on using the changeset viewer.