Ignore:
Timestamp:
Jul 14, 2007, 7:13:46 AM (18 years ago)
Author:
Brendan Oakley
Message:

Merged to Alsa 0.9.0rc5

File:
1 edited

Legend:

Unmodified
Added
Removed
  • GPL/branches/alsa-resync1/alsa-kernel/drivers/serial-u16550.c

    r210 r212  
    133133};
    134134
    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 */
     135static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;      /* Index 0-MAX */
     136static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;       /* ID for this card */
     137static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE; /* Enable this card */
     138static long port[SNDRV_CARDS] = SNDRV_DEFAULT_PORT; /* 0x3f8,0x2f8,0x3e8,0x2e8 */
     139static int irq[SNDRV_CARDS] = SNDRV_DEFAULT_IRQ;        /* 3,4,5,7,9,10,11,14,15 */
    140140#ifdef TARGET_OS2
    141 static int snd_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)};
     141static int speed[SNDRV_CARDS] = {REPEAT_SNDRV(38400)}; /* 9600,19200,38400,57600,115200 */
     142static int base[SNDRV_CARDS] = {REPEAT_SNDRV(115200)}; /* baud base */
     143static int outs[SNDRV_CARDS] = {REPEAT_SNDRV(1)};       /* 1 to 16 */
     144static int ins[SNDRV_CARDS] = {REPEAT_SNDRV(1)};        /* 1 to 16 */
     145static int adaptor[SNDRV_CARDS] = {REPEAT_SNDRV(SNDRV_SERIAL_SOUNDCANVAS)};
    146146#else
    147 static int snd_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};
     147static int speed[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 38400}; /* 9600,19200,38400,57600,115200 */
     148static int base[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 115200}; /* baud base */
     149static int outs[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 1};  /* 1 to 16 */
     150static int ins[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 1};  /* 1 to 16 */
     151static int adaptor[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = SNDRV_SERIAL_SOUNDCANVAS};
    152152#endif
    153153
    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(snd_speed, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
    170 MODULE_PARM_DESC(snd_speed, "Speed in bauds.");
    171 MODULE_PARM_SYNTAX(snd_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");
     154MODULE_PARM(index, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
     155MODULE_PARM_DESC(index, "Index value for Serial MIDI.");
     156MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
     157MODULE_PARM(id, "1-" __MODULE_STRING(SNDRV_CARDS) "s");
     158MODULE_PARM_DESC(id, "ID string for Serial MIDI.");
     159MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
     160MODULE_PARM(enable, "1-" __MODULE_STRING(SNDRV_CARDS) "l");
     161MODULE_PARM_DESC(enable, "Enable UART16550A chip.");
     162MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
     163MODULE_PARM(port, "1-" __MODULE_STRING(SNDRV_CARDS) "l");
     164MODULE_PARM_DESC(port, "Port # for UART16550A chip.");
     165MODULE_PARM_SYNTAX(port, SNDRV_PORT12_DESC);
     166MODULE_PARM(irq, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
     167MODULE_PARM_DESC(irq, "IRQ # for UART16550A chip.");
     168MODULE_PARM_SYNTAX(irq, SNDRV_IRQ_DESC);
     169MODULE_PARM(speed, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
     170MODULE_PARM_DESC(speed, "Speed in bauds.");
     171MODULE_PARM_SYNTAX(speed, SNDRV_ENABLED ",allows:{9600,19200,38400,57600,115200},dialog:list");
     172MODULE_PARM(base, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
     173MODULE_PARM_DESC(base, "Base for divisor in bauds.");
     174MODULE_PARM_SYNTAX(base, SNDRV_ENABLED ",allows:{57600,115200,230400,460800},dialog:list");
     175MODULE_PARM(outs, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
     176MODULE_PARM_DESC(outs, "Number of MIDI outputs.");
     177MODULE_PARM(ins, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
     178MODULE_PARM_DESC(ins, "Number of MIDI inputs.");
     179
     180MODULE_PARM_SYNTAX(outs, SNDRV_ENABLED ",allows:{{1,16}},dialog:list");
     181MODULE_PARM_SYNTAX(ins, SNDRV_ENABLED ",allows:{{1,16}},dialog:list");
     182MODULE_PARM(adaptor, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
     183MODULE_PARM_DESC(adaptor, "Type of adaptor.");
     184MODULE_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");
    185185
    186186/*#define SNDRV_SERIAL_MS124W_MB_NOCOMBO 1*/  /* Address outs as 0-3 instead of bitmap */
     
    945945    int err;
    946946
    947     if (!snd_enable[dev])
     947        if (!enable[dev])
    948948        return -ENOENT;
    949949
    950     switch (snd_adaptor[dev]) {
     950        switch (adaptor[dev]) {
    951951    case SNDRV_SERIAL_SOUNDCANVAS:
    952                 snd_ins[dev] = 1;
     952                ins[dev] = 1;
    953953        break;
    954954    case SNDRV_SERIAL_MS124T:
    955955    case SNDRV_SERIAL_MS124W_SA:
    956         snd_outs[dev] = 1;
    957                 snd_ins[dev] = 1;
     956                outs[dev] = 1;
     957                ins[dev] = 1;
    958958        break;
    959959    case SNDRV_SERIAL_MS124W_MB:
    960         snd_outs[dev] = 16;
    961                 snd_ins[dev] = 1;
     960                outs[dev] = 16;
     961                ins[dev] = 1;
    962962                break;
    963963        case SNDRV_SERIAL_GENERIC:
     
    965965    default:
    966966        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]);
    968968        return -ENODEV;
    969969    }
    970970
    971     if (snd_outs[dev] < 1 || snd_outs[dev] > SNDRV_SERIAL_MAX_OUTS) {
     971        if (outs[dev] < 1 || outs[dev] > SNDRV_SERIAL_MAX_OUTS) {
    972972        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]);
    974974                return -ENODEV;
    975975        }
    976976
    977         if (snd_ins[dev] < 1 || snd_ins[dev] > SNDRV_SERIAL_MAX_INS) {
     977        if (ins[dev] < 1 || ins[dev] > SNDRV_SERIAL_MAX_INS) {
    978978                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]);
    980980        return -ENODEV;
    981981    }
    982982
    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);
    984984    if (card == NULL)
    985985        return -ENOMEM;
     
    988988    strcpy(card->shortname, "Serial midi (uart16550A)");
    989989
    990     if ((err = snd_uart16550_detect(snd_port[dev])) <= 0) {
     990        if ((err = snd_uart16550_detect(port[dev])) <= 0) {
    991991        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]);
    993993        return err;
    994994    }
    995995
    996996    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],
    10021002                                    &uart)) < 0) {
    10031003        snd_card_free(card);
     
    10051005    }
    10061006
    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) {
    10081008        snd_card_free(card);
    10091009        return err;
     
    10161016            uart->speed,
    10171017            (int)uart->divisor,
    1018             snd_outs[dev],
    1019                 snd_ins[dev],
     1018                outs[dev],
     1019                ins[dev],
    10201020            adaptor_names[uart->adaptor]);
    10211021
     
    10621062#ifndef MODULE
    10631063
    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 */
    10671067
    10681068static int __init alsa_card_serial_setup(char *str)
     
    10721072    if (nr_dev >= SNDRV_CARDS)
    10731073        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);
    10841084    nr_dev++;
    10851085    return 1;
Note: See TracChangeset for help on using the changeset viewer.