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/cs46xx/cs46xx.c

    r703 r717  
    7474        }
    7575
    76         err = snd_card_new(&pci->dev, index[dev], id[dev], THIS_MODULE,
    77                            0, &card);
     76        err = snd_devm_card_new(&pci->dev, index[dev], id[dev], THIS_MODULE,
     77                                sizeof(*chip), &card);
    7878        if (err < 0)
    7979                return err;
     80        chip = card->private_data;
    8081        err = snd_cs46xx_create(card, pci,
    81                                 external_amp[dev], thinkpad[dev],
    82                                 &chip);
    83         if (err < 0) {
    84                 snd_card_free(card);
    85                 return err;
    86         }
     82                                external_amp[dev], thinkpad[dev]);
     83        if (err < 0)
     84                goto error;
    8785        card->private_data = chip;
    8886        chip->accept_valid = mmap_valid[dev];
    8987        err = snd_cs46xx_pcm(chip, 0);
    90         if (err < 0) {
    91                 snd_card_free(card);
    92                 return err;
    93         }
     88        if (err < 0)
     89                goto error;
    9490#ifdef CONFIG_SND_CS46XX_NEW_DSP
    9591        err = snd_cs46xx_pcm_rear(chip, 1);
    96         if (err < 0) {
    97                 snd_card_free(card);
    98                 return err;
    99         }
     92        if (err < 0)
     93                goto error;
    10094        err = snd_cs46xx_pcm_iec958(chip, 2);
    101         if (err < 0) {
    102                 snd_card_free(card);
    103                 return err;
    104         }
     95        if (err < 0)
     96                goto error;
    10597#endif
    10698        err = snd_cs46xx_mixer(chip, 2);
    107         if (err < 0) {
    108                 snd_card_free(card);
    109                 return err;
    110         }
     99        if (err < 0)
     100                goto error;
    111101#ifdef CONFIG_SND_CS46XX_NEW_DSP
    112102        if (chip->nr_ac97_codecs ==2) {
    113103                err = snd_cs46xx_pcm_center_lfe(chip, 3);
    114                 if (err < 0) {
    115                         snd_card_free(card);
    116                         return err;
    117                 }
     104                if (err < 0)
     105                        goto error;
    118106        }
    119107#endif
    120108        err = snd_cs46xx_midi(chip, 0);
    121         if (err < 0) {
    122                 snd_card_free(card);
    123                 return err;
    124         }
     109        if (err < 0)
     110                goto error;
    125111        err = snd_cs46xx_start_dsp(chip);
    126         if (err < 0) {
    127                 snd_card_free(card);
    128                 return err;
    129         }
    130 
     112        if (err < 0)
     113                goto error;
    131114
    132115        snd_cs46xx_gameport(chip);
     
    141124
    142125        err = snd_card_register(card);
    143         if (err < 0) {
    144                 snd_card_free(card);
    145                 return err;
    146         }
     126        if (err < 0)
     127                goto error;
    147128
    148129        pci_set_drvdata(pci, card);
    149130        dev++;
    150131        return 0;
    151 }
    152132
    153 static void snd_card_cs46xx_remove(struct pci_dev *pci)
    154 {
    155         snd_card_free(pci_get_drvdata(pci));
     133 error:
     134        snd_card_free(card);
     135        return err;
    156136}
    157137
     
    160140        .id_table = snd_cs46xx_ids,
    161141        .probe = snd_card_cs46xx_probe,
    162         .remove = snd_card_cs46xx_remove,
    163142#ifdef CONFIG_PM_SLEEP
    164143        .driver = {
Note: See TracChangeset for help on using the changeset viewer.