Changeset 717 for GPL/trunk/alsa-kernel/pci/cs46xx/cs46xx.c
- Timestamp:
- Aug 7, 2022, 6:11:12 PM (3 years ago)
- Location:
- GPL/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
GPL/trunk
- Property svn:mergeinfo changed
/GPL/branches/uniaud32-next merged: 710-716
- Property svn:mergeinfo changed
-
GPL/trunk/alsa-kernel/pci/cs46xx/cs46xx.c
r703 r717 74 74 } 75 75 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); 78 78 if (err < 0) 79 79 return err; 80 chip = card->private_data; 80 81 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; 87 85 card->private_data = chip; 88 86 chip->accept_valid = mmap_valid[dev]; 89 87 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; 94 90 #ifdef CONFIG_SND_CS46XX_NEW_DSP 95 91 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; 100 94 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; 105 97 #endif 106 98 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; 111 101 #ifdef CONFIG_SND_CS46XX_NEW_DSP 112 102 if (chip->nr_ac97_codecs ==2) { 113 103 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; 118 106 } 119 107 #endif 120 108 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; 125 111 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; 131 114 132 115 snd_cs46xx_gameport(chip); … … 141 124 142 125 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; 147 128 148 129 pci_set_drvdata(pci, card); 149 130 dev++; 150 131 return 0; 151 }152 132 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; 156 136 } 157 137 … … 160 140 .id_table = snd_cs46xx_ids, 161 141 .probe = snd_card_cs46xx_probe, 162 .remove = snd_card_cs46xx_remove,163 142 #ifdef CONFIG_PM_SLEEP 164 143 .driver = {
Note:
See TracChangeset
for help on using the changeset viewer.