Ignore:
Timestamp:
Aug 7, 2022, 6:11:12 PM (3 years ago)
Author:
David Azarewicz
Message:

Merge changes from next branch.

Location:
GPL/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • GPL/trunk

  • GPL/trunk/alsa-kernel/pci/trident/trident.c

    r703 r717  
    7272        }
    7373
    74         err = snd_card_new(&pci->dev, index[dev], id[dev], THIS_MODULE,
    75                            0, &card);
     74        err = snd_devm_card_new(&pci->dev, index[dev], id[dev], THIS_MODULE,
     75                                sizeof(*trident), &card);
    7676        if (err < 0)
    7777                return err;
     78        trident = card->private_data;
    7879
    7980        err = snd_trident_create(card, pci,
    8081                                 pcm_channels[dev],
    8182                                 ((pci->vendor << 16) | pci->device) == TRIDENT_DEVICE_ID_SI7018 ? 1 : 2,
    82                                  wavetable_size[dev],
    83                                  &trident);
    84         if (err < 0) {
    85                 snd_card_free(card);
     83                                 wavetable_size[dev]);
     84        if (err < 0)
    8685                return err;
    87         }
    88         card->private_data = trident;
    8986
    9087        switch (trident->device) {
     
    112109
    113110        err = snd_trident_pcm(trident, pcm_dev++);
    114         if (err < 0) {
    115                 snd_card_free(card);
     111        if (err < 0)
    116112                return err;
    117         }
    118113        switch (trident->device) {
    119114        case TRIDENT_DEVICE_ID_DX:
    120115        case TRIDENT_DEVICE_ID_NX:
    121116                err = snd_trident_foldback_pcm(trident, pcm_dev++);
    122                 if (err < 0) {
    123                         snd_card_free(card);
     117                if (err < 0)
    124118                        return err;
    125                 }
    126119                break;
    127120        }
    128121        if (trident->device == TRIDENT_DEVICE_ID_NX || trident->device == TRIDENT_DEVICE_ID_SI7018) {
    129122                err = snd_trident_spdif_pcm(trident, pcm_dev++);
    130                 if (err < 0) {
    131                         snd_card_free(card);
     123                if (err < 0)
    132124                        return err;
    133                 }
    134125        }
    135126        if (trident->device != TRIDENT_DEVICE_ID_SI7018) {
     
    139130                                          MPU401_INFO_IRQ_HOOK,
    140131                                          -1, &trident->rmidi);
    141                 if (err < 0) {
    142                         snd_card_free(card);
     132                if (err < 0)
    143133                        return err;
    144                 }
    145134        }
    146135
     
    148137
    149138        err = snd_card_register(card);
    150         if (err < 0) {
    151                 snd_card_free(card);
     139        if (err < 0)
    152140                return err;
    153         }
    154141        pci_set_drvdata(pci, card);
    155142        dev++;
    156143        return 0;
    157 }
    158 
    159 static void snd_trident_remove(struct pci_dev *pci)
    160 {
    161         snd_card_free(pci_get_drvdata(pci));
    162144}
    163145
     
    166148        .id_table = snd_trident_ids,
    167149        .probe = snd_trident_probe,
    168         .remove = snd_trident_remove,
    169150#ifdef CONFIG_PM_SLEEP
    170151        .driver = {
Note: See TracChangeset for help on using the changeset viewer.