Ignore:
Timestamp:
May 9, 2009, 11:45:26 AM (16 years ago)
Author:
Paul Smedley
Message:

Update alsa-kernel to ALSA 1.0.20 level

File:
1 edited

Legend:

Unmodified
Added
Removed
  • GPL/trunk/alsa-kernel/isa/cs423x/cs4236.c

    r410 r426  
    3434MODULE_AUTHOR("Jaroslav Kysela <perex@perex.cz>");
    3535MODULE_LICENSE("GPL");
    36 #ifdef CS4232
    37 MODULE_DESCRIPTION("Cirrus Logic CS4232");
     36MODULE_DESCRIPTION("Cirrus Logic CS4232-9");
    3837MODULE_SUPPORTED_DEVICE("{{Turtle Beach,TBS-2000},"
    3938                "{Turtle Beach,Tropez Plus},"
     
    4140                "{Hewlett Packard,Omnibook 5500},"
    4241                "{TerraTec,Maestro 32/96},"
    43                 "{Philips,PCA70PS}}");
    44 #else
    45 MODULE_DESCRIPTION("Cirrus Logic CS4235-9");
    46 MODULE_SUPPORTED_DEVICE("{{Crystal Semiconductors,CS4235},"
     42                "{Philips,PCA70PS}},"
     43                "{{Crystal Semiconductors,CS4235},"
    4744                "{Crystal Semiconductors,CS4236},"
    4845                "{Crystal Semiconductors,CS4237},"
     
    7168                "{Turtle Beach,Malibu},"
    7269                "{Unknown,Digital PC 5000 Onboard}}");
    73 #endif
    74 
    75 #ifdef CS4232
    76 #define IDENT "CS4232"
    77 #define DEV_NAME "cs4232"
    78 #else
    79 #define IDENT "CS4236+"
    80 #define DEV_NAME "cs4236"
    81 #endif
     70
     71MODULE_ALIAS("snd_cs4232");
     72
     73#define IDENT "CS4232+"
     74#define DEV_NAME "cs4232+"
    8275
    8376static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;      /* Index 0-MAX */
     
    129122static int isa_registered;
    130123static int pnpc_registered;
    131 #ifdef CS4232
    132124static int pnp_registered;
    133 #endif
    134125#endif /* CONFIG_PNP */
    135126
     
    146137#ifdef CONFIG_PNP
    147138
    148 #ifdef CS4232
    149139/*
    150140 * PNP BIOS
    151141 */
    152 static const struct pnp_device_id snd_cs4232_pnpbiosids[] = {
     142static const struct pnp_device_id snd_cs423x_pnpbiosids[] = {
    153143        { .id = "CSC0100" },
    154144        { .id = "CSC0000" },
     
    158148        { .id = "" }
    159149};
    160 MODULE_DEVICE_TABLE(pnp, snd_cs4232_pnpbiosids);
    161 #endif /* CS4232 */
    162 
    163 #ifdef CS4232
     150MODULE_DEVICE_TABLE(pnp, snd_cs423x_pnpbiosids);
     151
    164152#define CS423X_ISAPNP_DRIVER    "cs4232_isapnp"
    165153static struct pnp_card_device_id snd_cs423x_pnpids[] = {
     
    180168        /* Netfinity 3000 on-board soundcard */
    181169        { .id = "CSCe825", .devs = { { "CSC0100" }, { "CSC0110" }, { "CSC010f" } } },
    182         /* --- */
    183         { .id = "" }    /* end */
    184 };
    185 #else /* CS4236 */
    186 #define CS423X_ISAPNP_DRIVER    "cs4236_isapnp"
    187 static struct pnp_card_device_id snd_cs423x_pnpids[] = {
    188170        /* Intel Marlin Spike Motherboard - CS4235 */
    189171        { .id = "CSC0225", .devs = { { "CSC0000" }, { "CSC0010" }, { "CSC0003" } } },
     
    267249        { .id = "" }    /* end */
    268250};
    269 #endif
    270251
    271252MODULE_DEVICE_TABLE(pnp_card, snd_cs423x_pnpids);
     
    324305}
    325306
    326 #ifdef CS4232
    327 static int __devinit snd_card_cs4232_pnp(int dev, struct snd_card_cs4236 *acard,
    328                                          struct pnp_dev *pdev)
     307static int __devinit snd_card_cs423x_pnp(int dev, struct snd_card_cs4236 *acard,
     308                                         struct pnp_dev *pdev,
     309                                         struct pnp_dev *cdev)
    329310{
    330311        acard->wss = pdev;
    331312        if (snd_cs423x_pnp_init_wss(dev, acard->wss) < 0)
    332313                return -EBUSY;
    333         cport[dev] = -1;
    334         return 0;
    335 }
    336 #endif
     314        if (cdev)
     315                cport[dev] = pnp_port_start(cdev, 0);
     316        else
     317                cport[dev] = -1;
     318        return 0;
     319}
    337320
    338321static int __devinit snd_card_cs423x_pnpc(int dev, struct snd_card_cs4236 *acard,
     
    412395                }
    413396
    414 #ifdef CS4232
    415397        err = snd_wss_create(card, port[dev], cport[dev],
    416398                             irq[dev],
    417399                             dma1[dev], dma2[dev],
    418                              WSS_HW_DETECT, 0, &chip);
     400                             WSS_HW_DETECT3, 0, &chip);
    419401        if (err < 0)
    420402                return err;
    421         acard->chip = chip;
    422 
    423         err = snd_wss_pcm(chip, 0, &pcm);
    424         if (err < 0)
    425                 return err;
    426 
    427         err = snd_wss_mixer(chip);
    428         if (err < 0)
    429                 return err;
    430 
    431 #else /* CS4236 */
    432         err = snd_cs4236_create(card,
    433                                 port[dev], cport[dev],
    434                                 irq[dev], dma1[dev], dma2[dev],
    435                                 WSS_HW_DETECT, 0, &chip);
    436         if (err < 0)
    437                 return err;
    438         acard->chip = chip;
    439 
    440         err = snd_cs4236_pcm(chip, 0, &pcm);
    441         if (err < 0)
    442                 return err;
    443 
    444         err = snd_cs4236_mixer(chip);
    445         if (err < 0)
    446                 return err;
    447 #endif
     403        if (chip->hardware & WSS_HW_CS4236B_MASK) {
     404                snd_wss_free(chip);
     405                err = snd_cs4236_create(card,
     406                                        port[dev], cport[dev],
     407                                        irq[dev], dma1[dev], dma2[dev],
     408                                        WSS_HW_DETECT, 0, &chip);
     409                if (err < 0)
     410                        return err;
     411                acard->chip = chip;
     412
     413                err = snd_cs4236_pcm(chip, 0, &pcm);
     414                if (err < 0)
     415                        return err;
     416
     417                err = snd_cs4236_mixer(chip);
     418                if (err < 0)
     419                        return err;
     420        } else {
     421                acard->chip = chip;
     422                err = snd_wss_pcm(chip, 0, &pcm);
     423                if (err < 0)
     424                        return err;
     425
     426                err = snd_wss_mixer(chip);
     427                if (err < 0)
     428                        return err;
     429        }
    448430        strcpy(card->driver, pcm->name);
    449431        strcpy(card->shortname, pcm->name);
     
    580562
    581563#ifdef CONFIG_PNP
    582 #ifdef CS4232
    583 static int __devinit snd_cs4232_pnpbios_detect(struct pnp_dev *pdev,
     564static int __devinit snd_cs423x_pnpbios_detect(struct pnp_dev *pdev,
    584565                                               const struct pnp_device_id *id)
    585566{
     
    587568        int err;
    588569        struct snd_card *card;
     570        struct pnp_dev *cdev;
     571        char cid[PNP_ID_LEN];
    589572
    590573        if (pnp_device_is_isapnp(pdev))
     
    597580                return -ENODEV;
    598581
     582        /* prepare second id */
     583        strcpy(cid, pdev->id[0].id);
     584        cid[5] = '1';
     585        cdev = NULL;
     586        list_for_each_entry(cdev, &(pdev->protocol->devices), protocol_list) {
     587                if (!strcmp(cdev->id[0].id, cid))
     588                        break;
     589        }
    599590        err = snd_cs423x_card_new(dev, &card);
    600591        if (err < 0)
    601592                return err;
    602         if ((err = snd_card_cs4232_pnp(dev, card->private_data, pdev)) < 0) {
     593        err = snd_card_cs423x_pnp(dev, card->private_data, pdev, cdev);
     594        if (err < 0) {
    603595                printk(KERN_ERR "PnP BIOS detection failed for " IDENT "\n");
    604596                snd_card_free(card);
     
    615607}
    616608
    617 static void __devexit snd_cs4232_pnp_remove(struct pnp_dev * pdev)
     609static void __devexit snd_cs423x_pnp_remove(struct pnp_dev *pdev)
    618610{
    619611        snd_card_free(pnp_get_drvdata(pdev));
     
    622614
    623615#ifdef CONFIG_PM
    624 static int snd_cs4232_pnp_suspend(struct pnp_dev *pdev, pm_message_t state)
     616static int snd_cs423x_pnp_suspend(struct pnp_dev *pdev, pm_message_t state)
    625617{
    626618        return snd_cs423x_suspend(pnp_get_drvdata(pdev));
    627619}
    628620
    629 static int snd_cs4232_pnp_resume(struct pnp_dev *pdev)
     621static int snd_cs423x_pnp_resume(struct pnp_dev *pdev)
    630622{
    631623        return snd_cs423x_resume(pnp_get_drvdata(pdev));
     
    633625#endif
    634626
    635 static struct pnp_driver cs4232_pnp_driver = {
    636         .name = "cs4232-pnpbios",
    637         .id_table = snd_cs4232_pnpbiosids,
    638         .probe = snd_cs4232_pnpbios_detect,
    639         .remove = __devexit_p(snd_cs4232_pnp_remove),
     627static struct pnp_driver cs423x_pnp_driver = {
     628        .name = "cs423x-pnpbios",
     629        .id_table = snd_cs423x_pnpbiosids,
     630        .probe = snd_cs423x_pnpbios_detect,
     631        .remove = __devexit_p(snd_cs423x_pnp_remove),
    640632#ifdef CONFIG_PM
    641         .suspend        = snd_cs4232_pnp_suspend,
    642         .resume         = snd_cs4232_pnp_resume,
     633        .suspend        = snd_cs423x_pnp_suspend,
     634        .resume         = snd_cs423x_pnp_resume,
    643635#endif
    644636};
    645 #endif /* CS4232 */
    646637
    647638static int __devinit snd_cs423x_pnpc_detect(struct pnp_card_link *pcard,
     
    717708        if (!err)
    718709                isa_registered = 1;
    719 #ifdef CS4232
    720         err = pnp_register_driver(&cs4232_pnp_driver);
     710        err = pnp_register_driver(&cs423x_pnp_driver);
    721711        if (!err)
    722712                pnp_registered = 1;
    723 #endif
    724713        err = pnp_register_card_driver(&cs423x_pnpc_driver);
    725714        if (!err)
    726715                pnpc_registered = 1;
    727 #ifdef CS4232
    728716        if (pnp_registered)
    729717                err = 0;
    730 #endif
    731718        if (isa_registered)
    732719                err = 0;
     
    740727        if (pnpc_registered)
    741728                pnp_unregister_card_driver(&cs423x_pnpc_driver);
    742 #ifdef CS4232
    743729        if (pnp_registered)
    744                 pnp_unregister_driver(&cs4232_pnp_driver);
    745 #endif
     730                pnp_unregister_driver(&cs423x_pnp_driver);
    746731        if (isa_registered)
    747732#endif
Note: See TracChangeset for help on using the changeset viewer.