Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'topic/snd_card_new-err' into topic/cs423x-merge

+617 -516
+25 -19
Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl
··· 492 492 } 493 493 494 494 /* (2) */ 495 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 496 - if (card == NULL) 497 - return -ENOMEM; 495 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 496 + if (err < 0) 497 + return err; 498 498 499 499 /* (3) */ 500 500 err = snd_mychip_create(card, pci, &chip); ··· 590 590 <programlisting> 591 591 <![CDATA[ 592 592 struct snd_card *card; 593 + int err; 593 594 .... 594 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 595 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 595 596 ]]> 596 597 </programlisting> 597 598 </informalexample> ··· 810 809 811 810 <para> 812 811 As mentioned above, to create a card instance, call 813 - <function>snd_card_new()</function>. 812 + <function>snd_card_create()</function>. 814 813 815 814 <informalexample> 816 815 <programlisting> 817 816 <![CDATA[ 818 817 struct snd_card *card; 819 - card = snd_card_new(index, id, module, extra_size); 818 + int err; 819 + err = snd_card_create(index, id, module, extra_size, &card); 820 820 ]]> 821 821 </programlisting> 822 822 </informalexample> 823 823 </para> 824 824 825 825 <para> 826 - The function takes four arguments, the card-index number, the 826 + The function takes five arguments, the card-index number, the 827 827 id string, the module pointer (usually 828 828 <constant>THIS_MODULE</constant>), 829 - and the size of extra-data space. The last argument is used to 829 + the size of extra-data space, and the pointer to return the 830 + card instance. The extra_size argument is used to 830 831 allocate card-&gt;private_data for the 831 832 chip-specific data. Note that these data 832 - are allocated by <function>snd_card_new()</function>. 833 + are allocated by <function>snd_card_create()</function>. 833 834 </para> 834 835 </section> 835 836 ··· 918 915 </para> 919 916 920 917 <section id="card-management-chip-specific-snd-card-new"> 921 - <title>1. Allocating via <function>snd_card_new()</function>.</title> 918 + <title>1. Allocating via <function>snd_card_create()</function>.</title> 922 919 <para> 923 920 As mentioned above, you can pass the extra-data-length 924 - to the 4th argument of <function>snd_card_new()</function>, i.e. 921 + to the 4th argument of <function>snd_card_create()</function>, i.e. 925 922 926 923 <informalexample> 927 924 <programlisting> 928 925 <![CDATA[ 929 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, sizeof(struct mychip)); 926 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 927 + sizeof(struct mychip), &card); 930 928 ]]> 931 929 </programlisting> 932 930 </informalexample> ··· 956 952 957 953 <para> 958 954 After allocating a card instance via 959 - <function>snd_card_new()</function> (with 960 - <constant>NULL</constant> on the 4th arg), call 955 + <function>snd_card_create()</function> (with 956 + <constant>0</constant> on the 4th arg), call 961 957 <function>kzalloc()</function>. 962 958 963 959 <informalexample> ··· 965 961 <![CDATA[ 966 962 struct snd_card *card; 967 963 struct mychip *chip; 968 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, NULL); 964 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 969 965 ..... 970 966 chip = kzalloc(sizeof(*chip), GFP_KERNEL); 971 967 ]]> ··· 5754 5750 .... 5755 5751 struct snd_card *card; 5756 5752 struct mychip *chip; 5753 + int err; 5757 5754 .... 5758 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, NULL); 5755 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 5759 5756 .... 5760 5757 chip = kzalloc(sizeof(*chip), GFP_KERNEL); 5761 5758 .... ··· 5768 5763 </informalexample> 5769 5764 5770 5765 When you created the chip data with 5771 - <function>snd_card_new()</function>, it's anyway accessible 5766 + <function>snd_card_create()</function>, it's anyway accessible 5772 5767 via <structfield>private_data</structfield> field. 5773 5768 5774 5769 <informalexample> ··· 5780 5775 .... 5781 5776 struct snd_card *card; 5782 5777 struct mychip *chip; 5778 + int err; 5783 5779 .... 5784 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 5785 - sizeof(struct mychip)); 5780 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 5781 + sizeof(struct mychip), &card); 5786 5782 .... 5787 5783 chip = card->private_data; 5788 5784 ....
+4 -3
drivers/media/video/cx88/cx88-alsa.c
··· 803 803 return (-ENOENT); 804 804 } 805 805 806 - card = snd_card_new(index[devno], id[devno], THIS_MODULE, sizeof(snd_cx88_card_t)); 807 - if (!card) 808 - return (-ENOMEM); 806 + err = snd_card_create(index[devno], id[devno], THIS_MODULE, 807 + sizeof(snd_cx88_card_t), &card); 808 + if (err < 0) 809 + return err; 809 810 810 811 card->private_free = snd_cx88_dev_free; 811 812
+4 -3
drivers/media/video/em28xx/em28xx-audio.c
··· 438 438 printk(KERN_INFO "em28xx-audio.c: Copyright (C) 2006 Markus " 439 439 "Rechberger\n"); 440 440 441 - card = snd_card_new(index[devnr], "Em28xx Audio", THIS_MODULE, 0); 442 - if (card == NULL) 443 - return -ENOMEM; 441 + err = snd_card_create(index[devnr], "Em28xx Audio", THIS_MODULE, 0, 442 + &card); 443 + if (err < 0) 444 + return err; 444 445 445 446 spin_lock_init(&adev->slock); 446 447 err = snd_pcm_new(card, "Em28xx Audio", 0, 0, 1, &pcm);
+4 -4
drivers/media/video/saa7134/saa7134-alsa.c
··· 990 990 if (!enable[devnum]) 991 991 return -ENODEV; 992 992 993 - card = snd_card_new(index[devnum], id[devnum], THIS_MODULE, sizeof(snd_card_saa7134_t)); 994 - 995 - if (card == NULL) 996 - return -ENOMEM; 993 + err = snd_card_create(index[devnum], id[devnum], THIS_MODULE, 994 + sizeof(snd_card_saa7134_t), &card); 995 + if (err < 0) 996 + return err; 997 997 998 998 strcpy(card->driver, "SAA7134"); 999 999
+4 -3
drivers/staging/go7007/snd-go7007.c
··· 248 248 spin_lock_init(&gosnd->lock); 249 249 gosnd->hw_ptr = gosnd->w_idx = gosnd->avail = 0; 250 250 gosnd->capturing = 0; 251 - gosnd->card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 252 - if (gosnd->card == NULL) { 251 + ret = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, 252 + &gosnd->card); 253 + if (ret < 0) { 253 254 kfree(gosnd); 254 - return -ENOMEM; 255 + return ret; 255 256 } 256 257 ret = snd_device_new(gosnd->card, SNDRV_DEV_LOWLEVEL, go, 257 258 &go7007_snd_device_ops);
+3 -4
drivers/usb/gadget/gmidi.c
··· 1099 1099 .dev_free = gmidi_snd_free, 1100 1100 }; 1101 1101 1102 - card = snd_card_new(index, id, THIS_MODULE, 0); 1103 - if (!card) { 1104 - ERROR(dev, "snd_card_new failed\n"); 1105 - err = -ENOMEM; 1102 + err = snd_card_create(index, id, THIS_MODULE, 0, &card); 1103 + if (err < 0) { 1104 + ERROR(dev, "snd_card_create failed\n"); 1106 1105 goto fail; 1107 1106 } 1108 1107 dev->card = card;
+13 -1
include/sound/core.h
··· 296 296 extern int (*snd_mixer_oss_notify_callback)(struct snd_card *card, int cmd); 297 297 #endif 298 298 299 + int snd_card_create(int idx, const char *id, 300 + struct module *module, int extra_size, 301 + struct snd_card **card_ret); 302 + 303 + static inline __deprecated 299 304 struct snd_card *snd_card_new(int idx, const char *id, 300 - struct module *module, int extra_size); 305 + struct module *module, int extra_size) 306 + { 307 + struct snd_card *card; 308 + if (snd_card_create(idx, id, module, extra_size, &card) < 0) 309 + return NULL; 310 + return card; 311 + } 312 + 301 313 int snd_card_disconnect(struct snd_card *card); 302 314 int snd_card_free(struct snd_card *card); 303 315 int snd_card_free_when_closed(struct snd_card *card);
+4 -3
sound/aoa/core/alsa.c
··· 23 23 /* cannot be EEXIST due to usage in aoa_fabric_register */ 24 24 return -EBUSY; 25 25 26 - alsa_card = snd_card_new(index, name, mod, sizeof(struct aoa_card)); 27 - if (!alsa_card) 28 - return -ENOMEM; 26 + err = snd_card_create(index, name, mod, sizeof(struct aoa_card), 27 + &alsa_card); 28 + if (err < 0) 29 + return err; 29 30 aoa_card = alsa_card->private_data; 30 31 aoa_card->alsa_card = alsa_card; 31 32 alsa_card->dev = dev;
+4 -3
sound/arm/aaci.c
··· 995 995 { 996 996 struct aaci *aaci; 997 997 struct snd_card *card; 998 + int err; 998 999 999 - card = snd_card_new(SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1, 1000 - THIS_MODULE, sizeof(struct aaci)); 1001 - if (card == NULL) 1000 + err = snd_card_create(SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1, 1001 + THIS_MODULE, sizeof(struct aaci), &card); 1002 + if (err < 0) 1002 1003 return NULL; 1003 1004 1004 1005 card->private_free = aaci_free_card;
+3 -4
sound/arm/pxa2xx-ac97.c
··· 173 173 struct snd_ac97_template ac97_template; 174 174 int ret; 175 175 176 - ret = -ENOMEM; 177 - card = snd_card_new(SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1, 178 - THIS_MODULE, 0); 179 - if (!card) 176 + ret = snd_card_create(SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1, 177 + THIS_MODULE, 0, &card); 178 + if (ret < 0) 180 179 goto err; 181 180 182 181 card->dev = &dev->dev;
+4 -3
sound/arm/sa11xx-uda1341.c
··· 887 887 struct sa11xx_uda1341 *chip; 888 888 889 889 /* register the soundcard */ 890 - card = snd_card_new(-1, id, THIS_MODULE, sizeof(struct sa11xx_uda1341)); 891 - if (card == NULL) 892 - return -ENOMEM; 890 + err = snd_card_create(-1, id, THIS_MODULE, 891 + sizeof(struct sa11xx_uda1341), &card); 892 + if (err < 0) 893 + return err; 893 894 894 895 chip = card->private_data; 895 896 spin_lock_init(&chip->s[0].dma_lock);
+31 -16
sound/core/init.c
··· 121 121 #endif 122 122 123 123 /** 124 - * snd_card_new - create and initialize a soundcard structure 124 + * snd_card_create - create and initialize a soundcard structure 125 125 * @idx: card index (address) [0 ... (SNDRV_CARDS-1)] 126 126 * @xid: card identification (ASCII string) 127 127 * @module: top level module for locking 128 128 * @extra_size: allocate this extra size after the main soundcard structure 129 + * @card_ret: the pointer to store the created card instance 129 130 * 130 131 * Creates and initializes a soundcard structure. 131 132 * 132 - * Returns kmallocated snd_card structure. Creates the ALSA control interface 133 - * (which is blocked until snd_card_register function is called). 133 + * The function allocates snd_card instance via kzalloc with the given 134 + * space for the driver to use freely. The allocated struct is stored 135 + * in the given card_ret pointer. 136 + * 137 + * Returns zero if successful or a negative error code. 134 138 */ 135 - struct snd_card *snd_card_new(int idx, const char *xid, 136 - struct module *module, int extra_size) 139 + int snd_card_create(int idx, const char *xid, 140 + struct module *module, int extra_size, 141 + struct snd_card **card_ret) 137 142 { 138 143 struct snd_card *card; 139 144 int err, idx2; 140 145 146 + if (snd_BUG_ON(!card_ret)) 147 + return -EINVAL; 148 + *card_ret = NULL; 149 + 141 150 if (extra_size < 0) 142 151 extra_size = 0; 143 152 card = kzalloc(sizeof(*card) + extra_size, GFP_KERNEL); 144 - if (card == NULL) 145 - return NULL; 153 + if (!card) 154 + return -ENOMEM; 146 155 if (xid) { 147 - if (!snd_info_check_reserved_words(xid)) 156 + if (!snd_info_check_reserved_words(xid)) { 157 + snd_printk(KERN_ERR 158 + "given id string '%s' is reserved.\n", xid); 159 + err = -EBUSY; 148 160 goto __error; 161 + } 149 162 strlcpy(card->id, xid, sizeof(card->id)); 150 163 } 151 164 err = 0; ··· 215 202 #endif 216 203 /* the control interface cannot be accessed from the user space until */ 217 204 /* snd_cards_bitmask and snd_cards are set with snd_card_register */ 218 - if ((err = snd_ctl_create(card)) < 0) { 219 - snd_printd("unable to register control minors\n"); 205 + err = snd_ctl_create(card); 206 + if (err < 0) { 207 + snd_printk(KERN_ERR "unable to register control minors\n"); 220 208 goto __error; 221 209 } 222 - if ((err = snd_info_card_create(card)) < 0) { 223 - snd_printd("unable to create card info\n"); 210 + err = snd_info_card_create(card); 211 + if (err < 0) { 212 + snd_printk(KERN_ERR "unable to create card info\n"); 224 213 goto __error_ctl; 225 214 } 226 215 if (extra_size > 0) 227 216 card->private_data = (char *)card + sizeof(struct snd_card); 228 - return card; 217 + *card_ret = card; 218 + return 0; 229 219 230 220 __error_ctl: 231 221 snd_device_free_all(card, SNDRV_DEV_CMD_PRE); 232 222 __error: 233 223 kfree(card); 234 - return NULL; 224 + return err; 235 225 } 236 - 237 - EXPORT_SYMBOL(snd_card_new); 226 + EXPORT_SYMBOL(snd_card_create); 238 227 239 228 /* return non-zero if a card is already locked */ 240 229 int snd_card_locked(int card)
+4 -4
sound/drivers/dummy.c
··· 588 588 int idx, err; 589 589 int dev = devptr->id; 590 590 591 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 592 - sizeof(struct snd_dummy)); 593 - if (card == NULL) 594 - return -ENOMEM; 591 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 592 + sizeof(struct snd_dummy), &card); 593 + if (err < 0) 594 + return err; 595 595 dummy = card->private_data; 596 596 dummy->card = card; 597 597 for (idx = 0; idx < MAX_PCM_DEVICES && idx < pcm_devs[dev]; idx++) {
+3 -3
sound/drivers/ml403-ac97cr.c
··· 1279 1279 if (!enable[dev]) 1280 1280 return -ENOENT; 1281 1281 1282 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 1283 - if (card == NULL) 1284 - return -ENOMEM; 1282 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 1283 + if (err < 0) 1284 + return err; 1285 1285 err = snd_ml403_ac97cr_create(card, pfdev, &ml403_ac97cr); 1286 1286 if (err < 0) { 1287 1287 PDEBUG(INIT_FAILURE, "probe(): create failed!\n");
+3 -3
sound/drivers/mpu401/mpu401.c
··· 73 73 snd_printk(KERN_ERR "the uart_enter option is obsolete; remove it\n"); 74 74 75 75 *rcard = NULL; 76 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 77 - if (card == NULL) 78 - return -ENOMEM; 76 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 77 + if (err < 0) 78 + return err; 79 79 strcpy(card->driver, "MPU-401 UART"); 80 80 strcpy(card->shortname, card->driver); 81 81 sprintf(card->longname, "%s at %#lx, ", card->shortname, port[dev]);
+3 -3
sound/drivers/mtpav.c
··· 696 696 int err; 697 697 struct mtpav *mtp_card; 698 698 699 - card = snd_card_new(index, id, THIS_MODULE, sizeof(*mtp_card)); 700 - if (! card) 701 - return -ENOMEM; 699 + err = snd_card_create(index, id, THIS_MODULE, sizeof(*mtp_card), &card); 700 + if (err < 0) 701 + return err; 702 702 703 703 mtp_card = card->private_data; 704 704 spin_lock_init(&mtp_card->spinlock);
+3 -3
sound/drivers/mts64.c
··· 957 957 if ((err = snd_mts64_probe_port(p)) < 0) 958 958 return err; 959 959 960 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 961 - if (card == NULL) { 960 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 961 + if (err < 0) { 962 962 snd_printd("Cannot create card\n"); 963 - return -ENOMEM; 963 + return err; 964 964 } 965 965 strcpy(card->driver, DRIVER_NAME); 966 966 strcpy(card->shortname, "ESI " CARD_NAME);
+3 -3
sound/drivers/pcsp/pcsp.c
··· 98 98 hrtimer_init(&pcsp_chip.timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); 99 99 pcsp_chip.timer.function = pcsp_do_timer; 100 100 101 - card = snd_card_new(index, id, THIS_MODULE, 0); 102 - if (!card) 103 - return -ENOMEM; 101 + err = snd_card_create(index, id, THIS_MODULE, 0, &card); 102 + if (err < 0) 103 + return err; 104 104 105 105 err = snd_pcsp_create(card); 106 106 if (err < 0) {
+3 -3
sound/drivers/portman2x4.c
··· 746 746 if ((err = snd_portman_probe_port(p)) < 0) 747 747 return err; 748 748 749 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 750 - if (card == NULL) { 749 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 750 + if (err < 0) { 751 751 snd_printd("Cannot create card\n"); 752 - return -ENOMEM; 752 + return err; 753 753 } 754 754 strcpy(card->driver, DRIVER_NAME); 755 755 strcpy(card->shortname, CARD_NAME);
+3 -3
sound/drivers/serial-u16550.c
··· 936 936 return -ENODEV; 937 937 } 938 938 939 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 940 - if (card == NULL) 941 - return -ENOMEM; 939 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 940 + if (err < 0) 941 + return err; 942 942 943 943 strcpy(card->driver, "Serial"); 944 944 strcpy(card->shortname, "Serial MIDI (UART16550A)");
+4 -4
sound/drivers/virmidi.c
··· 90 90 int idx, err; 91 91 int dev = devptr->id; 92 92 93 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 94 - sizeof(struct snd_card_virmidi)); 95 - if (card == NULL) 96 - return -ENOMEM; 93 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 94 + sizeof(struct snd_card_virmidi), &card); 95 + if (err < 0) 96 + return err; 97 97 vmidi = (struct snd_card_virmidi *)card->private_data; 98 98 vmidi->card = card; 99 99
+4 -3
sound/isa/ad1816a/ad1816a.c
··· 158 158 struct snd_opl3 *opl3; 159 159 struct snd_timer *timer; 160 160 161 - if ((card = snd_card_new(index[dev], id[dev], THIS_MODULE, 162 - sizeof(struct snd_card_ad1816a))) == NULL) 163 - return -ENOMEM; 161 + error = snd_card_create(index[dev], id[dev], THIS_MODULE, 162 + sizeof(struct snd_card_ad1816a), &card); 163 + if (error < 0) 164 + return error; 164 165 acard = (struct snd_card_ad1816a *)card->private_data; 165 166 166 167 if ((error = snd_card_ad1816a_pnp(dev, acard, pcard, pid))) {
+3 -3
sound/isa/ad1848/ad1848.c
··· 91 91 struct snd_pcm *pcm; 92 92 int error; 93 93 94 - card = snd_card_new(index[n], id[n], THIS_MODULE, 0); 95 - if (!card) 96 - return -EINVAL; 94 + error = snd_card_create(index[n], id[n], THIS_MODULE, 0, &card); 95 + if (error < 0) 96 + return error; 97 97 98 98 error = snd_wss_create(card, port[n], -1, irq[n], dma1[n], -1, 99 99 thinkpad[n] ? WSS_HW_THINKPAD : WSS_HW_DETECT,
+3 -3
sound/isa/adlib.c
··· 53 53 struct snd_opl3 *opl3; 54 54 int error; 55 55 56 - card = snd_card_new(index[n], id[n], THIS_MODULE, 0); 57 - if (!card) { 56 + error = snd_card_create(index[n], id[n], THIS_MODULE, 0, &card); 57 + if (error < 0) { 58 58 dev_err(dev, "could not create card\n"); 59 - return -EINVAL; 59 + return error; 60 60 } 61 61 62 62 card->private_data = request_region(port[n], 4, CRD_NAME);
+4 -3
sound/isa/als100.c
··· 163 163 struct snd_card_als100 *acard; 164 164 struct snd_opl3 *opl3; 165 165 166 - if ((card = snd_card_new(index[dev], id[dev], THIS_MODULE, 167 - sizeof(struct snd_card_als100))) == NULL) 168 - return -ENOMEM; 166 + error = snd_card_create(index[dev], id[dev], THIS_MODULE, 167 + sizeof(struct snd_card_als100), &card); 168 + if (error < 0) 169 + return error; 169 170 acard = card->private_data; 170 171 171 172 if ((error = snd_card_als100_pnp(dev, acard, pcard, pid))) {
+4 -3
sound/isa/azt2320.c
··· 184 184 struct snd_wss *chip; 185 185 struct snd_opl3 *opl3; 186 186 187 - if ((card = snd_card_new(index[dev], id[dev], THIS_MODULE, 188 - sizeof(struct snd_card_azt2320))) == NULL) 189 - return -ENOMEM; 187 + error = snd_card_create(index[dev], id[dev], THIS_MODULE, 188 + sizeof(struct snd_card_azt2320), &card); 189 + if (error < 0) 190 + return error; 190 191 acard = (struct snd_card_azt2320 *)card->private_data; 191 192 192 193 if ((error = snd_card_azt2320_pnp(dev, acard, pcard, pid))) {
+14 -12
sound/isa/cmi8330.c
··· 497 497 498 498 #define PFX "cmi8330: " 499 499 500 - static struct snd_card *snd_cmi8330_card_new(int dev) 500 + static int snd_cmi8330_card_new(int dev, struct snd_card **cardp) 501 501 { 502 502 struct snd_card *card; 503 503 struct snd_cmi8330 *acard; 504 + int err; 504 505 505 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 506 - sizeof(struct snd_cmi8330)); 507 - if (card == NULL) { 506 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 507 + sizeof(struct snd_cmi8330), &card); 508 + if (err < 0) { 508 509 snd_printk(KERN_ERR PFX "could not get a new card\n"); 509 - return NULL; 510 + return err; 510 511 } 511 512 acard = card->private_data; 512 513 acard->card = card; 513 - return card; 514 + *cardp = card; 515 + return 0; 514 516 } 515 517 516 518 static int __devinit snd_cmi8330_probe(struct snd_card *card, int dev) ··· 618 616 struct snd_card *card; 619 617 int err; 620 618 621 - card = snd_cmi8330_card_new(dev); 622 - if (! card) 623 - return -ENOMEM; 619 + err = snd_cmi8330_card_new(dev, &card); 620 + if (err < 0) 621 + return err; 624 622 snd_card_set_dev(card, pdev); 625 623 if ((err = snd_cmi8330_probe(card, dev)) < 0) { 626 624 snd_card_free(card); ··· 682 680 if (dev >= SNDRV_CARDS) 683 681 return -ENODEV; 684 682 685 - card = snd_cmi8330_card_new(dev); 686 - if (! card) 687 - return -ENOMEM; 683 + res = snd_cmi8330_card_new(dev, &card); 684 + if (res < 0) 685 + return res; 688 686 if ((res = snd_cmi8330_pnp(dev, card->private_data, pcard, pid)) < 0) { 689 687 snd_printk(KERN_ERR PFX "PnP detection failed\n"); 690 688 snd_card_free(card);
+3 -3
sound/isa/cs423x/cs4231.c
··· 95 95 struct snd_pcm *pcm; 96 96 int error; 97 97 98 - card = snd_card_new(index[n], id[n], THIS_MODULE, 0); 99 - if (!card) 100 - return -EINVAL; 98 + error = snd_card_create(index[n], id[n], THIS_MODULE, 0, &card); 99 + if (error < 0) 100 + return error; 101 101 102 102 error = snd_wss_create(card, port[n], -1, irq[n], dma1[n], dma2[n], 103 103 WSS_HW_DETECT, 0, &chip);
+17 -15
sound/isa/cs423x/cs4236.c
··· 382 382 release_and_free_resource(acard->res_sb_port); 383 383 } 384 384 385 - static struct snd_card *snd_cs423x_card_new(int dev) 385 + static int snd_cs423x_card_new(int dev, struct snd_card **cardp) 386 386 { 387 387 struct snd_card *card; 388 + int err; 388 389 389 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 390 - sizeof(struct snd_card_cs4236)); 391 - if (card == NULL) 392 - return NULL; 390 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 391 + sizeof(struct snd_card_cs4236), &card); 392 + if (err < 0) 393 + return err; 393 394 card->private_free = snd_card_cs4236_free; 394 - return card; 395 + *cardp = card; 396 + return 0; 395 397 } 396 398 397 399 static int __devinit snd_cs423x_probe(struct snd_card *card, int dev) ··· 514 512 struct snd_card *card; 515 513 int err; 516 514 517 - card = snd_cs423x_card_new(dev); 518 - if (! card) 519 - return -ENOMEM; 515 + err = snd_cs423x_card_new(dev, &card); 516 + if (err < 0) 517 + return err; 520 518 snd_card_set_dev(card, pdev); 521 519 if ((err = snd_cs423x_probe(card, dev)) < 0) { 522 520 snd_card_free(card); ··· 596 594 if (dev >= SNDRV_CARDS) 597 595 return -ENODEV; 598 596 599 - card = snd_cs423x_card_new(dev); 600 - if (! card) 601 - return -ENOMEM; 597 + err = snd_cs423x_card_new(dev, &card); 598 + if (err < 0) 599 + return err; 602 600 if ((err = snd_card_cs4232_pnp(dev, card->private_data, pdev)) < 0) { 603 601 printk(KERN_ERR "PnP BIOS detection failed for " IDENT "\n"); 604 602 snd_card_free(card); ··· 658 656 if (dev >= SNDRV_CARDS) 659 657 return -ENODEV; 660 658 661 - card = snd_cs423x_card_new(dev); 662 - if (! card) 663 - return -ENOMEM; 659 + res = snd_cs423x_card_new(dev, &card); 660 + if (res < 0) 661 + return res; 664 662 if ((res = snd_card_cs423x_pnpc(dev, card->private_data, pcard, pid)) < 0) { 665 663 printk(KERN_ERR "isapnp detection failed and probing for " IDENT 666 664 " is not supported\n");
+4 -3
sound/isa/dt019x.c
··· 150 150 struct snd_card_dt019x *acard; 151 151 struct snd_opl3 *opl3; 152 152 153 - if ((card = snd_card_new(index[dev], id[dev], THIS_MODULE, 154 - sizeof(struct snd_card_dt019x))) == NULL) 155 - return -ENOMEM; 153 + error = snd_card_create(index[dev], id[dev], THIS_MODULE, 154 + sizeof(struct snd_card_dt019x), &card); 155 + if (error < 0) 156 + return error; 156 157 acard = card->private_data; 157 158 158 159 snd_card_set_dev(card, &pcard->card->dev);
+3 -3
sound/isa/es1688/es1688.c
··· 125 125 struct snd_pcm *pcm; 126 126 int error; 127 127 128 - card = snd_card_new(index[n], id[n], THIS_MODULE, 0); 129 - if (!card) 130 - return -EINVAL; 128 + error = snd_card_create(index[n], id[n], THIS_MODULE, 0, &card); 129 + if (error < 0) 130 + return error; 131 131 132 132 error = snd_es1688_legacy_create(card, dev, n, &chip); 133 133 if (error < 0)
+12 -12
sound/isa/es18xx.c
··· 2125 2125 #define is_isapnp_selected(dev) 0 2126 2126 #endif 2127 2127 2128 - static struct snd_card *snd_es18xx_card_new(int dev) 2128 + static int snd_es18xx_card_new(int dev, struct snd_card **cardp) 2129 2129 { 2130 - return snd_card_new(index[dev], id[dev], THIS_MODULE, 2131 - sizeof(struct snd_audiodrive)); 2130 + return snd_card_create(index[dev], id[dev], THIS_MODULE, 2131 + sizeof(struct snd_audiodrive), cardp); 2132 2132 } 2133 2133 2134 2134 static int __devinit snd_audiodrive_probe(struct snd_card *card, int dev) ··· 2197 2197 struct snd_card *card; 2198 2198 int err; 2199 2199 2200 - card = snd_es18xx_card_new(dev); 2201 - if (! card) 2202 - return -ENOMEM; 2200 + err = snd_es18xx_card_new(dev, &card); 2201 + if (err < 0) 2202 + return err; 2203 2203 snd_card_set_dev(card, devptr); 2204 2204 if ((err = snd_audiodrive_probe(card, dev)) < 0) { 2205 2205 snd_card_free(card); ··· 2303 2303 if (dev >= SNDRV_CARDS) 2304 2304 return -ENODEV; 2305 2305 2306 - card = snd_es18xx_card_new(dev); 2307 - if (! card) 2308 - return -ENOMEM; 2306 + err = snd_es18xx_card_new(dev, &card); 2307 + if (err < 0) 2308 + return err; 2309 2309 if ((err = snd_audiodrive_pnp(dev, card->private_data, pdev)) < 0) { 2310 2310 snd_card_free(card); 2311 2311 return err; ··· 2362 2362 if (dev >= SNDRV_CARDS) 2363 2363 return -ENODEV; 2364 2364 2365 - card = snd_es18xx_card_new(dev); 2366 - if (! card) 2367 - return -ENOMEM; 2365 + res = snd_es18xx_card_new(dev, &card); 2366 + if (res < 0) 2367 + return res; 2368 2368 2369 2369 if ((res = snd_audiodrive_pnpc(dev, card->private_data, pcard, pid)) < 0) { 2370 2370 snd_card_free(card);
+3 -3
sound/isa/gus/gusclassic.c
··· 148 148 struct snd_gus_card *gus; 149 149 int error; 150 150 151 - card = snd_card_new(index[n], id[n], THIS_MODULE, 0); 152 - if (!card) 153 - return -EINVAL; 151 + error = snd_card_create(index[n], id[n], THIS_MODULE, 0, &card); 152 + if (error < 0) 153 + return error; 154 154 155 155 if (pcm_channels[n] < 2) 156 156 pcm_channels[n] = 2;
+3 -3
sound/isa/gus/gusextreme.c
··· 241 241 struct snd_opl3 *opl3; 242 242 int error; 243 243 244 - card = snd_card_new(index[n], id[n], THIS_MODULE, 0); 245 - if (!card) 246 - return -EINVAL; 244 + error = snd_card_create(index[n], id[n], THIS_MODULE, 0, &card); 245 + if (error < 0) 246 + return error; 247 247 248 248 if (mpu_port[n] == SNDRV_AUTO_PORT) 249 249 mpu_port[n] = 0;
+4 -4
sound/isa/gus/gusmax.c
··· 214 214 struct snd_wss *wss; 215 215 struct snd_gusmax *maxcard; 216 216 217 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 218 - sizeof(struct snd_gusmax)); 219 - if (card == NULL) 220 - return -ENOMEM; 217 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 218 + sizeof(struct snd_gusmax), &card); 219 + if (err < 0) 220 + return err; 221 221 card->private_free = snd_gusmax_free; 222 222 maxcard = (struct snd_gusmax *)card->private_data; 223 223 maxcard->card = card;
+14 -12
sound/isa/gus/interwave.c
··· 628 628 free_irq(iwcard->irq, (void *)iwcard); 629 629 } 630 630 631 - static struct snd_card *snd_interwave_card_new(int dev) 631 + static int snd_interwave_card_new(int dev, struct snd_card **cardp) 632 632 { 633 633 struct snd_card *card; 634 634 struct snd_interwave *iwcard; 635 + int err; 635 636 636 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 637 - sizeof(struct snd_interwave)); 638 - if (card == NULL) 639 - return NULL; 637 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 638 + sizeof(struct snd_interwave), &card); 639 + if (err < 0) 640 + return err; 640 641 iwcard = card->private_data; 641 642 iwcard->card = card; 642 643 iwcard->irq = -1; 643 644 card->private_free = snd_interwave_free; 644 - return card; 645 + *cardp = card; 646 + return 0; 645 647 } 646 648 647 649 static int __devinit snd_interwave_probe(struct snd_card *card, int dev) ··· 782 780 struct snd_card *card; 783 781 int err; 784 782 785 - card = snd_interwave_card_new(dev); 786 - if (! card) 787 - return -ENOMEM; 783 + err = snd_interwave_card_new(dev, &card); 784 + if (err < 0) 785 + return err; 788 786 789 787 snd_card_set_dev(card, devptr); 790 788 if ((err = snd_interwave_probe(card, dev)) < 0) { ··· 880 878 if (dev >= SNDRV_CARDS) 881 879 return -ENODEV; 882 880 883 - card = snd_interwave_card_new(dev); 884 - if (! card) 885 - return -ENOMEM; 881 + res = snd_interwave_card_new(dev, &card); 882 + if (res < 0) 883 + return res; 886 884 887 885 if ((res = snd_interwave_pnp(dev, card->private_data, pcard, pid)) < 0) { 888 886 snd_card_free(card);
+17 -14
sound/isa/opl3sa2.c
··· 621 621 release_and_free_resource(chip->res_port); 622 622 } 623 623 624 - static struct snd_card *snd_opl3sa2_card_new(int dev) 624 + static int snd_opl3sa2_card_new(int dev, struct snd_card **cardp) 625 625 { 626 626 struct snd_card *card; 627 627 struct snd_opl3sa2 *chip; 628 + int err; 628 629 629 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, sizeof(struct snd_opl3sa2)); 630 - if (card == NULL) 631 - return NULL; 630 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 631 + sizeof(struct snd_opl3sa2), &card); 632 + if (err < 0) 633 + return err; 632 634 strcpy(card->driver, "OPL3SA2"); 633 635 strcpy(card->shortname, "Yamaha OPL3-SA2"); 634 636 chip = card->private_data; 635 637 spin_lock_init(&chip->reg_lock); 636 638 chip->irq = -1; 637 639 card->private_free = snd_opl3sa2_free; 638 - return card; 640 + *cardp = card; 641 + return 0; 639 642 } 640 643 641 644 static int __devinit snd_opl3sa2_probe(struct snd_card *card, int dev) ··· 730 727 if (dev >= SNDRV_CARDS) 731 728 return -ENODEV; 732 729 733 - card = snd_opl3sa2_card_new(dev); 734 - if (! card) 735 - return -ENOMEM; 730 + err = snd_opl3sa2_card_new(dev, &card); 731 + if (err < 0) 732 + return err; 736 733 if ((err = snd_opl3sa2_pnp(dev, card->private_data, pdev)) < 0) { 737 734 snd_card_free(card); 738 735 return err; ··· 796 793 if (dev >= SNDRV_CARDS) 797 794 return -ENODEV; 798 795 799 - card = snd_opl3sa2_card_new(dev); 800 - if (! card) 801 - return -ENOMEM; 796 + err = snd_opl3sa2_card_new(dev, &card); 797 + if (err < 0) 798 + return err; 802 799 if ((err = snd_opl3sa2_pnp(dev, card->private_data, pdev)) < 0) { 803 800 snd_card_free(card); 804 801 return err; ··· 877 874 struct snd_card *card; 878 875 int err; 879 876 880 - card = snd_opl3sa2_card_new(dev); 881 - if (! card) 882 - return -ENOMEM; 877 + err = snd_opl3sa2_card_new(dev, &card); 878 + if (err < 0) 879 + return err; 883 880 snd_card_set_dev(card, pdev); 884 881 if ((err = snd_opl3sa2_probe(card, dev)) < 0) { 885 882 snd_card_free(card);
+4 -3
sound/isa/opti9xx/miro.c
··· 1228 1228 struct snd_pcm *pcm; 1229 1229 struct snd_rawmidi *rmidi; 1230 1230 1231 - if (!(card = snd_card_new(index, id, THIS_MODULE, 1232 - sizeof(struct snd_miro)))) 1233 - return -ENOMEM; 1231 + error = snd_card_create(index, id, THIS_MODULE, 1232 + sizeof(struct snd_miro), &card); 1233 + if (error < 0) 1234 + return error; 1234 1235 1235 1236 card->private_free = snd_card_miro_free; 1236 1237 miro = card->private_data;
+14 -11
sound/isa/opti9xx/opti92x-ad1848.c
··· 828 828 return snd_card_register(card); 829 829 } 830 830 831 - static struct snd_card *snd_opti9xx_card_new(void) 831 + static int snd_opti9xx_card_new(struct snd_card **cardp) 832 832 { 833 833 struct snd_card *card; 834 + int err; 834 835 835 - card = snd_card_new(index, id, THIS_MODULE, sizeof(struct snd_opti9xx)); 836 - if (! card) 837 - return NULL; 836 + err = snd_card_create(index, id, THIS_MODULE, 837 + sizeof(struct snd_opti9xx), &card); 838 + if (err < 0) 839 + return err; 838 840 card->private_free = snd_card_opti9xx_free; 839 - return card; 841 + *cardp = card; 842 + return 0; 840 843 } 841 844 842 845 static int __devinit snd_opti9xx_isa_match(struct device *devptr, ··· 904 901 } 905 902 #endif 906 903 907 - card = snd_opti9xx_card_new(); 908 - if (! card) 909 - return -ENOMEM; 904 + error = snd_opti9xx_card_new(&card); 905 + if (error < 0) 906 + return error; 910 907 911 908 if ((error = snd_card_opti9xx_detect(card, card->private_data)) < 0) { 912 909 snd_card_free(card); ··· 951 948 return -EBUSY; 952 949 if (! isapnp) 953 950 return -ENODEV; 954 - card = snd_opti9xx_card_new(); 955 - if (! card) 956 - return -ENOMEM; 951 + error = snd_opti9xx_card_new(&card); 952 + if (error < 0) 953 + return error; 957 954 chip = card->private_data; 958 955 959 956 hw = snd_card_opti9xx_pnp(chip, pcard, pid);
+4 -3
sound/isa/sb/es968.c
··· 108 108 struct snd_card *card; 109 109 struct snd_card_es968 *acard; 110 110 111 - if ((card = snd_card_new(index[dev], id[dev], THIS_MODULE, 112 - sizeof(struct snd_card_es968))) == NULL) 113 - return -ENOMEM; 111 + error = snd_card_create(index[dev], id[dev], THIS_MODULE, 112 + sizeof(struct snd_card_es968), &card); 113 + if (error < 0) 114 + return error; 114 115 acard = card->private_data; 115 116 if ((error = snd_card_es968_pnp(dev, acard, pcard, pid))) { 116 117 snd_card_free(card);
+16 -12
sound/isa/sb/sb16.c
··· 324 324 #define is_isapnp_selected(dev) 0 325 325 #endif 326 326 327 - static struct snd_card *snd_sb16_card_new(int dev) 327 + static int snd_sb16_card_new(int dev, struct snd_card **cardp) 328 328 { 329 - struct snd_card *card = snd_card_new(index[dev], id[dev], THIS_MODULE, 330 - sizeof(struct snd_card_sb16)); 331 - if (card == NULL) 332 - return NULL; 329 + struct snd_card *card; 330 + int err; 331 + 332 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 333 + sizeof(struct snd_card_sb16), &card); 334 + if (err < 0) 335 + return err; 333 336 card->private_free = snd_sb16_free; 334 - return card; 337 + *cardp = card; 338 + return 0; 335 339 } 336 340 337 341 static int __devinit snd_sb16_probe(struct snd_card *card, int dev) ··· 493 489 struct snd_card *card; 494 490 int err; 495 491 496 - card = snd_sb16_card_new(dev); 497 - if (! card) 498 - return -ENOMEM; 492 + err = snd_sb16_card_new(dev, &card); 493 + if (err < 0) 494 + return err; 499 495 500 496 acard = card->private_data; 501 497 /* non-PnP FM port address is hardwired with base port address */ ··· 614 610 for ( ; dev < SNDRV_CARDS; dev++) { 615 611 if (!enable[dev] || !isapnp[dev]) 616 612 continue; 617 - card = snd_sb16_card_new(dev); 618 - if (! card) 619 - return -ENOMEM; 613 + res = snd_sb16_card_new(dev, &card); 614 + if (res < 0) 615 + return res; 620 616 snd_card_set_dev(card, &pcard->card->dev); 621 617 if ((res = snd_card_sb16_pnp(dev, card->private_data, pcard, pid)) < 0 || 622 618 (res = snd_sb16_probe(card, dev)) < 0) {
+4 -4
sound/isa/sb/sb8.c
··· 103 103 struct snd_opl3 *opl3; 104 104 int err; 105 105 106 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 107 - sizeof(struct snd_sb8)); 108 - if (card == NULL) 109 - return -ENOMEM; 106 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 107 + sizeof(struct snd_sb8), &card); 108 + if (err < 0) 109 + return err; 110 110 acard = card->private_data; 111 111 card->private_free = snd_sb8_free; 112 112
+3 -3
sound/isa/sc6000.c
··· 489 489 char __iomem *vmss_port; 490 490 491 491 492 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 493 - if (!card) 494 - return -ENOMEM; 492 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 493 + if (err < 0) 494 + return err; 495 495 496 496 if (xirq == SNDRV_AUTO_IRQ) { 497 497 xirq = snd_legacy_find_free_irq(possible_irqs);
+3 -3
sound/isa/sgalaxy.c
··· 243 243 struct snd_card *card; 244 244 struct snd_wss *chip; 245 245 246 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 247 - if (card == NULL) 248 - return -ENOMEM; 246 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 247 + if (err < 0) 248 + return err; 249 249 250 250 xirq = irq[dev]; 251 251 if (xirq == SNDRV_AUTO_IRQ) {
+8 -8
sound/isa/sscape.c
··· 1357 1357 struct soundscape *sscape; 1358 1358 int ret; 1359 1359 1360 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 1361 - sizeof(struct soundscape)); 1362 - if (!card) 1363 - return -ENOMEM; 1360 + ret = snd_card_create(index[dev], id[dev], THIS_MODULE, 1361 + sizeof(struct soundscape), &card); 1362 + if (ret < 0) 1363 + return ret; 1364 1364 1365 1365 sscape = get_card_soundscape(card); 1366 1366 sscape->type = SSCAPE; ··· 1462 1462 * Create a new ALSA sound card entry, in anticipation 1463 1463 * of detecting our hardware ... 1464 1464 */ 1465 - card = snd_card_new(index[idx], id[idx], THIS_MODULE, 1466 - sizeof(struct soundscape)); 1467 - if (!card) 1468 - return -ENOMEM; 1465 + ret = snd_card_create(index[idx], id[idx], THIS_MODULE, 1466 + sizeof(struct soundscape), &card); 1467 + if (ret < 0) 1468 + return ret; 1469 1469 1470 1470 sscape = get_card_soundscape(card); 1471 1471
+14 -12
sound/isa/wavefront/wavefront.c
··· 338 338 } 339 339 } 340 340 341 - static struct snd_card *snd_wavefront_card_new(int dev) 341 + static int snd_wavefront_card_new(int dev, struct snd_card **cardp) 342 342 { 343 343 struct snd_card *card; 344 344 snd_wavefront_card_t *acard; 345 + int err; 345 346 346 - card = snd_card_new (index[dev], id[dev], THIS_MODULE, 347 - sizeof(snd_wavefront_card_t)); 348 - if (card == NULL) 349 - return NULL; 347 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 348 + sizeof(snd_wavefront_card_t), &card); 349 + if (err < 0) 350 + return err; 350 351 351 352 acard = card->private_data; 352 353 acard->wavefront.irq = -1; ··· 358 357 acard->wavefront.card = card; 359 358 card->private_free = snd_wavefront_free; 360 359 361 - return card; 360 + *cardp = card; 361 + return 0; 362 362 } 363 363 364 364 static int __devinit ··· 569 567 struct snd_card *card; 570 568 int err; 571 569 572 - card = snd_wavefront_card_new(dev); 573 - if (! card) 574 - return -ENOMEM; 570 + err = snd_wavefront_card_new(dev, &card); 571 + if (err < 0) 572 + return err; 575 573 snd_card_set_dev(card, pdev); 576 574 if ((err = snd_wavefront_probe(card, dev)) < 0) { 577 575 snd_card_free(card); ··· 618 616 if (dev >= SNDRV_CARDS) 619 617 return -ENODEV; 620 618 621 - card = snd_wavefront_card_new(dev); 622 - if (! card) 623 - return -ENOMEM; 619 + res = snd_wavefront_card_new(dev, &card); 620 + if (res < 0) 621 + return res; 624 622 625 623 if (snd_wavefront_pnp (dev, card->private_data, pcard, pid) < 0) { 626 624 if (cs4232_pcm_port[dev] == SNDRV_AUTO_PORT) {
+4 -3
sound/mips/au1x00.c
··· 636 636 struct snd_card *card; 637 637 struct snd_au1000 *au1000; 638 638 639 - card = snd_card_new(-1, "AC97", THIS_MODULE, sizeof(struct snd_au1000)); 640 - if (card == NULL) 641 - return -ENOMEM; 639 + err = snd_card_create(-1, "AC97", THIS_MODULE, 640 + sizeof(struct snd_au1000), &card); 641 + if (err < 0) 642 + return err; 642 643 643 644 card->private_free = snd_au1000_free; 644 645 au1000 = card->private_data;
+3 -3
sound/mips/hal2.c
··· 878 878 struct snd_hal2 *chip; 879 879 int err; 880 880 881 - card = snd_card_new(index, id, THIS_MODULE, 0); 882 - if (card == NULL) 883 - return -ENOMEM; 881 + err = snd_card_create(index, id, THIS_MODULE, 0, &card); 882 + if (err < 0) 883 + return err; 884 884 885 885 err = hal2_create(card, &chip); 886 886 if (err < 0) {
+3 -3
sound/mips/sgio2audio.c
··· 936 936 struct snd_sgio2audio *chip; 937 937 int err; 938 938 939 - card = snd_card_new(index, id, THIS_MODULE, 0); 940 - if (card == NULL) 941 - return -ENOMEM; 939 + err = snd_card_create(index, id, THIS_MODULE, 0, &card); 940 + if (err < 0) 941 + return err; 942 942 943 943 err = snd_sgio2audio_create(card, &chip); 944 944 if (err < 0) {
+3 -3
sound/parisc/harmony.c
··· 975 975 struct snd_card *card; 976 976 struct snd_harmony *h; 977 977 978 - card = snd_card_new(index, id, THIS_MODULE, 0); 979 - if (card == NULL) 980 - return -ENOMEM; 978 + err = snd_card_create(index, id, THIS_MODULE, 0, &card); 979 + if (err < 0) 980 + return err; 981 981 982 982 err = snd_harmony_create(card, padev, &h); 983 983 if (err < 0)
+3 -3
sound/pci/ad1889.c
··· 995 995 } 996 996 997 997 /* (2) */ 998 - card = snd_card_new(index[devno], id[devno], THIS_MODULE, 0); 998 + err = snd_card_create(index[devno], id[devno], THIS_MODULE, 0, &card); 999 999 /* XXX REVISIT: we can probably allocate chip in this call */ 1000 - if (card == NULL) 1001 - return -ENOMEM; 1000 + if (err < 0) 1001 + return err; 1002 1002 1003 1003 strcpy(card->driver, "AD1889"); 1004 1004 strcpy(card->shortname, "Analog Devices AD1889");
+3 -3
sound/pci/ali5451/ali5451.c
··· 2307 2307 2308 2308 snd_ali_printk("probe ...\n"); 2309 2309 2310 - card = snd_card_new(index, id, THIS_MODULE, 0); 2311 - if (!card) 2312 - return -ENOMEM; 2310 + err = snd_card_create(index, id, THIS_MODULE, 0, &card); 2311 + if (err < 0) 2312 + return err; 2313 2313 2314 2314 err = snd_ali_create(card, pci, pcm_channels, spdif, &codec); 2315 2315 if (err < 0)
+3 -3
sound/pci/als300.c
··· 812 812 return -ENOENT; 813 813 } 814 814 815 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 815 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 816 816 817 - if (card == NULL) 818 - return -ENOMEM; 817 + if (err < 0) 818 + return err; 819 819 820 820 chip_type = pci_id->driver_data; 821 821
+5 -4
sound/pci/als4000.c
··· 889 889 pci_write_config_word(pci, PCI_COMMAND, word | PCI_COMMAND_IO); 890 890 pci_set_master(pci); 891 891 892 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 893 - sizeof(*acard) /* private_data: acard */); 894 - if (card == NULL) { 892 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 893 + sizeof(*acard) /* private_data: acard */, 894 + &card); 895 + if (err < 0) { 895 896 pci_release_regions(pci); 896 897 pci_disable_device(pci); 897 - return -ENOMEM; 898 + return err; 898 899 } 899 900 900 901 acard = card->private_data;
+3 -3
sound/pci/atiixp.c
··· 1645 1645 struct atiixp *chip; 1646 1646 int err; 1647 1647 1648 - card = snd_card_new(index, id, THIS_MODULE, 0); 1649 - if (card == NULL) 1650 - return -ENOMEM; 1648 + err = snd_card_create(index, id, THIS_MODULE, 0, &card); 1649 + if (err < 0) 1650 + return err; 1651 1651 1652 1652 strcpy(card->driver, spdif_aclink ? "ATIIXP" : "ATIIXP-SPDMA"); 1653 1653 strcpy(card->shortname, "ATI IXP");
+3 -3
sound/pci/atiixp_modem.c
··· 1288 1288 struct atiixp_modem *chip; 1289 1289 int err; 1290 1290 1291 - card = snd_card_new(index, id, THIS_MODULE, 0); 1292 - if (card == NULL) 1293 - return -ENOMEM; 1291 + err = snd_card_create(index, id, THIS_MODULE, 0, &card); 1292 + if (err < 0) 1293 + return err; 1294 1294 1295 1295 strcpy(card->driver, "ATIIXP-MODEM"); 1296 1296 strcpy(card->shortname, "ATI IXP Modem");
+3 -3
sound/pci/au88x0/au88x0.c
··· 250 250 return -ENOENT; 251 251 } 252 252 // (2) 253 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 254 - if (card == NULL) 255 - return -ENOMEM; 253 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 254 + if (err < 0) 255 + return err; 256 256 257 257 // (3) 258 258 if ((err = snd_vortex_create(card, pci, &chip)) < 0) {
+3 -3
sound/pci/aw2/aw2-alsa.c
··· 368 368 } 369 369 370 370 /* (2) Create card instance */ 371 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 372 - if (card == NULL) 373 - return -ENOMEM; 371 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 372 + if (err < 0) 373 + return err; 374 374 375 375 /* (3) Create main component */ 376 376 err = snd_aw2_create(card, pci, &chip);
+3 -3
sound/pci/azt3328.c
··· 2216 2216 return -ENOENT; 2217 2217 } 2218 2218 2219 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 2220 - if (card == NULL) 2221 - return -ENOMEM; 2219 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 2220 + if (err < 0) 2221 + return err; 2222 2222 2223 2223 strcpy(card->driver, "AZF3328"); 2224 2224 strcpy(card->shortname, "Aztech AZF3328 (PCI168)");
+3 -3
sound/pci/bt87x.c
··· 888 888 return -ENOENT; 889 889 } 890 890 891 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 892 - if (!card) 893 - return -ENOMEM; 891 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 892 + if (err < 0) 893 + return err; 894 894 895 895 err = snd_bt87x_create(card, pci, &chip); 896 896 if (err < 0)
+3 -3
sound/pci/ca0106/ca0106_main.c
··· 1707 1707 return -ENOENT; 1708 1708 } 1709 1709 1710 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 1711 - if (card == NULL) 1712 - return -ENOMEM; 1710 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 1711 + if (err < 0) 1712 + return err; 1713 1713 1714 1714 err = snd_ca0106_create(dev, card, pci, &chip); 1715 1715 if (err < 0)
+3 -3
sound/pci/cmipci.c
··· 3272 3272 return -ENOENT; 3273 3273 } 3274 3274 3275 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 3276 - if (card == NULL) 3277 - return -ENOMEM; 3275 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 3276 + if (err < 0) 3277 + return err; 3278 3278 3279 3279 switch (pci->device) { 3280 3280 case PCI_DEVICE_ID_CMEDIA_CM8738:
+3 -3
sound/pci/cs4281.c
··· 1925 1925 return -ENOENT; 1926 1926 } 1927 1927 1928 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 1929 - if (card == NULL) 1930 - return -ENOMEM; 1928 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 1929 + if (err < 0) 1930 + return err; 1931 1931 1932 1932 if ((err = snd_cs4281_create(card, pci, &chip, dual_codec[dev])) < 0) { 1933 1933 snd_card_free(card);
+3 -3
sound/pci/cs46xx/cs46xx.c
··· 88 88 return -ENOENT; 89 89 } 90 90 91 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 92 - if (card == NULL) 93 - return -ENOMEM; 91 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 92 + if (err < 0) 93 + return err; 94 94 if ((err = snd_cs46xx_create(card, pci, 95 95 external_amp[dev], thinkpad[dev], 96 96 &chip)) < 0) {
+3 -3
sound/pci/cs5530.c
··· 258 258 return -ENOENT; 259 259 } 260 260 261 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 261 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 262 262 263 - if (card == NULL) 264 - return -ENOMEM; 263 + if (err < 0) 264 + return err; 265 265 266 266 err = snd_cs5530_create(card, pci, &chip); 267 267 if (err < 0) {
+3 -3
sound/pci/cs5535audio/cs5535audio.c
··· 353 353 return -ENOENT; 354 354 } 355 355 356 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 357 - if (card == NULL) 358 - return -ENOMEM; 356 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 357 + if (err < 0) 358 + return err; 359 359 360 360 if ((err = snd_cs5535audio_create(card, pci, &cs5535au)) < 0) 361 361 goto probefail_out;
+3 -3
sound/pci/echoaudio/echoaudio.c
··· 1997 1997 1998 1998 DE_INIT(("Echoaudio driver starting...\n")); 1999 1999 i = 0; 2000 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 2001 - if (card == NULL) 2002 - return -ENOMEM; 2000 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 2001 + if (err < 0) 2002 + return err; 2003 2003 2004 2004 snd_card_set_dev(card, &pci->dev); 2005 2005
+3 -3
sound/pci/emu10k1/emu10k1.c
··· 114 114 return -ENOENT; 115 115 } 116 116 117 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 118 - if (card == NULL) 119 - return -ENOMEM; 117 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 118 + if (err < 0) 119 + return err; 120 120 if (max_buffer_size[dev] < 32) 121 121 max_buffer_size[dev] = 32; 122 122 else if (max_buffer_size[dev] > 1024)
+3 -3
sound/pci/emu10k1/emu10k1x.c
··· 1544 1544 return -ENOENT; 1545 1545 } 1546 1546 1547 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 1548 - if (card == NULL) 1549 - return -ENOMEM; 1547 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 1548 + if (err < 0) 1549 + return err; 1550 1550 1551 1551 if ((err = snd_emu10k1x_create(card, pci, &chip)) < 0) { 1552 1552 snd_card_free(card);
+3 -3
sound/pci/ens1370.c
··· 2409 2409 return -ENOENT; 2410 2410 } 2411 2411 2412 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 2413 - if (card == NULL) 2414 - return -ENOMEM; 2412 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 2413 + if (err < 0) 2414 + return err; 2415 2415 2416 2416 if ((err = snd_ensoniq_create(card, pci, &ensoniq)) < 0) { 2417 2417 snd_card_free(card);
+3 -3
sound/pci/es1938.c
··· 1799 1799 return -ENOENT; 1800 1800 } 1801 1801 1802 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 1803 - if (card == NULL) 1804 - return -ENOMEM; 1802 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 1803 + if (err < 0) 1804 + return err; 1805 1805 for (idx = 0; idx < 5; idx++) { 1806 1806 if (pci_resource_start(pci, idx) == 0 || 1807 1807 !(pci_resource_flags(pci, idx) & IORESOURCE_IO)) {
+3 -3
sound/pci/es1968.c
··· 2645 2645 return -ENOENT; 2646 2646 } 2647 2647 2648 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 2649 - if (!card) 2650 - return -ENOMEM; 2648 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 2649 + if (err < 0) 2650 + return err; 2651 2651 2652 2652 if (total_bufsize[dev] < 128) 2653 2653 total_bufsize[dev] = 128;
+3 -3
sound/pci/fm801.c
··· 1468 1468 return -ENOENT; 1469 1469 } 1470 1470 1471 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 1472 - if (card == NULL) 1473 - return -ENOMEM; 1471 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 1472 + if (err < 0) 1473 + return err; 1474 1474 if ((err = snd_fm801_create(card, pci, tea575x_tuner[dev], &chip)) < 0) { 1475 1475 snd_card_free(card); 1476 1476 return err;
+3 -3
sound/pci/hda/hda_intel.c
··· 2335 2335 return -ENOENT; 2336 2336 } 2337 2337 2338 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 2339 - if (!card) { 2338 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 2339 + if (err < 0) { 2340 2340 snd_printk(KERN_ERR SFX "Error creating card!\n"); 2341 - return -ENOMEM; 2341 + return err; 2342 2342 } 2343 2343 2344 2344 err = azx_create(card, pci, dev, pci_id->driver_data, &chip);
+3 -3
sound/pci/ice1712/ice1712.c
··· 2648 2648 return -ENOENT; 2649 2649 } 2650 2650 2651 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 2652 - if (card == NULL) 2653 - return -ENOMEM; 2651 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 2652 + if (err < 0) 2653 + return err; 2654 2654 2655 2655 strcpy(card->driver, "ICE1712"); 2656 2656 strcpy(card->shortname, "ICEnsemble ICE1712");
+3 -3
sound/pci/ice1712/ice1724.c
··· 2456 2456 return -ENOENT; 2457 2457 } 2458 2458 2459 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 2460 - if (card == NULL) 2461 - return -ENOMEM; 2459 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 2460 + if (err < 0) 2461 + return err; 2462 2462 2463 2463 strcpy(card->driver, "ICE1724"); 2464 2464 strcpy(card->shortname, "ICEnsemble ICE1724");
+3 -3
sound/pci/intel8x0.c
··· 3058 3058 int err; 3059 3059 struct shortname_table *name; 3060 3060 3061 - card = snd_card_new(index, id, THIS_MODULE, 0); 3062 - if (card == NULL) 3063 - return -ENOMEM; 3061 + err = snd_card_create(index, id, THIS_MODULE, 0, &card); 3062 + if (err < 0) 3063 + return err; 3064 3064 3065 3065 if (spdif_aclink < 0) 3066 3066 spdif_aclink = check_default_spdif_aclink(pci);
+3 -3
sound/pci/intel8x0m.c
··· 1269 1269 int err; 1270 1270 struct shortname_table *name; 1271 1271 1272 - card = snd_card_new(index, id, THIS_MODULE, 0); 1273 - if (card == NULL) 1274 - return -ENOMEM; 1272 + err = snd_card_create(index, id, THIS_MODULE, 0, &card); 1273 + if (err < 0) 1274 + return err; 1275 1275 1276 1276 strcpy(card->driver, "ICH-MODEM"); 1277 1277 strcpy(card->shortname, "Intel ICH");
+3 -3
sound/pci/korg1212/korg1212.c
··· 2443 2443 dev++; 2444 2444 return -ENOENT; 2445 2445 } 2446 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 2447 - if (card == NULL) 2448 - return -ENOMEM; 2446 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 2447 + if (err < 0) 2448 + return err; 2449 2449 2450 2450 if ((err = snd_korg1212_create(card, pci, &korg1212)) < 0) { 2451 2451 snd_card_free(card);
+3 -3
sound/pci/maestro3.c
··· 2691 2691 return -ENOENT; 2692 2692 } 2693 2693 2694 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 2695 - if (card == NULL) 2696 - return -ENOMEM; 2694 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 2695 + if (err < 0) 2696 + return err; 2697 2697 2698 2698 switch (pci->device) { 2699 2699 case PCI_DEVICE_ID_ESS_ALLEGRO:
+3 -3
sound/pci/mixart/mixart.c
··· 1365 1365 else 1366 1366 idx = index[dev] + i; 1367 1367 snprintf(tmpid, sizeof(tmpid), "%s-%d", id[dev] ? id[dev] : "MIXART", i); 1368 - card = snd_card_new(idx, tmpid, THIS_MODULE, 0); 1368 + err = snd_card_create(idx, tmpid, THIS_MODULE, 0, &card); 1369 1369 1370 - if (! card) { 1370 + if (err < 0) { 1371 1371 snd_printk(KERN_ERR "cannot allocate the card %d\n", i); 1372 1372 snd_mixart_free(mgr); 1373 - return -ENOMEM; 1373 + return err; 1374 1374 } 1375 1375 1376 1376 strcpy(card->driver, CARD_NAME);
+3 -3
sound/pci/nm256/nm256.c
··· 1668 1668 } 1669 1669 } 1670 1670 1671 - card = snd_card_new(index, id, THIS_MODULE, 0); 1672 - if (card == NULL) 1673 - return -ENOMEM; 1671 + err = snd_card_create(index, id, THIS_MODULE, 0, &card); 1672 + if (err < 0) 1673 + return err; 1674 1674 1675 1675 switch (pci->device) { 1676 1676 case PCI_DEVICE_ID_NEOMAGIC_NM256AV_AUDIO:
+4 -4
sound/pci/oxygen/oxygen_lib.c
··· 459 459 struct oxygen *chip; 460 460 int err; 461 461 462 - card = snd_card_new(index, id, model->owner, 463 - sizeof *chip + model->model_data_size); 464 - if (!card) 465 - return -ENOMEM; 462 + err = snd_card_create(index, id, model->owner, 463 + sizeof(*chip) + model->model_data_size, &card); 464 + if (err < 0) 465 + return err; 466 466 467 467 chip = card->private_data; 468 468 chip->card = card;
+3 -3
sound/pci/pcxhr/pcxhr.c
··· 1510 1510 1511 1511 snprintf(tmpid, sizeof(tmpid), "%s-%d", 1512 1512 id[dev] ? id[dev] : card_name, i); 1513 - card = snd_card_new(idx, tmpid, THIS_MODULE, 0); 1513 + err = snd_card_create(idx, tmpid, THIS_MODULE, 0, &card); 1514 1514 1515 - if (! card) { 1515 + if (err < 0) { 1516 1516 snd_printk(KERN_ERR "cannot allocate the card %d\n", i); 1517 1517 pcxhr_free(mgr); 1518 - return -ENOMEM; 1518 + return err; 1519 1519 } 1520 1520 1521 1521 strcpy(card->driver, DRIVER_NAME);
+3 -3
sound/pci/riptide/riptide.c
··· 2102 2102 return -ENOENT; 2103 2103 } 2104 2104 2105 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 2106 - if (card == NULL) 2107 - return -ENOMEM; 2105 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 2106 + if (err < 0) 2107 + return err; 2108 2108 if ((err = snd_riptide_create(card, pci, &chip)) < 0) { 2109 2109 snd_card_free(card); 2110 2110 return err;
+4 -3
sound/pci/rme32.c
··· 1941 1941 return -ENOENT; 1942 1942 } 1943 1943 1944 - if ((card = snd_card_new(index[dev], id[dev], THIS_MODULE, 1945 - sizeof(struct rme32))) == NULL) 1946 - return -ENOMEM; 1944 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 1945 + sizeof(struct rme32), &card); 1946 + if (err < 0) 1947 + return err; 1947 1948 card->private_free = snd_rme32_card_free; 1948 1949 rme32 = (struct rme32 *) card->private_data; 1949 1950 rme32->card = card;
+4 -3
sound/pci/rme96.c
··· 2348 2348 dev++; 2349 2349 return -ENOENT; 2350 2350 } 2351 - if ((card = snd_card_new(index[dev], id[dev], THIS_MODULE, 2352 - sizeof(struct rme96))) == NULL) 2353 - return -ENOMEM; 2351 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 2352 + sizeof(struct rme96), &card); 2353 + if (err < 0) 2354 + return err; 2354 2355 card->private_free = snd_rme96_card_free; 2355 2356 rme96 = (struct rme96 *)card->private_data; 2356 2357 rme96->card = card;
+4 -2
sound/pci/rme9652/hdsp.c
··· 5158 5158 return -ENOENT; 5159 5159 } 5160 5160 5161 - if (!(card = snd_card_new(index[dev], id[dev], THIS_MODULE, sizeof(struct hdsp)))) 5162 - return -ENOMEM; 5161 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 5162 + sizeof(struct hdsp), &card); 5163 + if (err < 0) 5164 + return err; 5163 5165 5164 5166 hdsp = (struct hdsp *) card->private_data; 5165 5167 card->private_free = snd_hdsp_card_free;
+4 -4
sound/pci/rme9652/hdspm.c
··· 4503 4503 return -ENOENT; 4504 4504 } 4505 4505 4506 - card = snd_card_new(index[dev], id[dev], 4507 - THIS_MODULE, sizeof(struct hdspm)); 4508 - if (!card) 4509 - return -ENOMEM; 4506 + err = snd_card_create(index[dev], id[dev], 4507 + THIS_MODULE, sizeof(struct hdspm), &card); 4508 + if (err < 0) 4509 + return err; 4510 4510 4511 4511 hdspm = card->private_data; 4512 4512 card->private_free = snd_hdspm_card_free;
+4 -4
sound/pci/rme9652/rme9652.c
··· 2594 2594 return -ENOENT; 2595 2595 } 2596 2596 2597 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 2598 - sizeof(struct snd_rme9652)); 2597 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 2598 + sizeof(struct snd_rme9652), &card); 2599 2599 2600 - if (!card) 2601 - return -ENOMEM; 2600 + if (err < 0) 2601 + return err; 2602 2602 2603 2603 rme9652 = (struct snd_rme9652 *) card->private_data; 2604 2604 card->private_free = snd_rme9652_card_free;
+2 -3
sound/pci/sis7019.c
··· 1387 1387 if (!enable) 1388 1388 goto error_out; 1389 1389 1390 - rc = -ENOMEM; 1391 - card = snd_card_new(index, id, THIS_MODULE, sizeof(*sis)); 1392 - if (!card) 1390 + rc = snd_card_create(index, id, THIS_MODULE, sizeof(*sis), &card); 1391 + if (rc < 0) 1393 1392 goto error_out; 1394 1393 1395 1394 strcpy(card->driver, "SiS7019");
+3 -3
sound/pci/sonicvibes.c
··· 1423 1423 return -ENOENT; 1424 1424 } 1425 1425 1426 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 1427 - if (card == NULL) 1428 - return -ENOMEM; 1426 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 1427 + if (err < 0) 1428 + return err; 1429 1429 for (idx = 0; idx < 5; idx++) { 1430 1430 if (pci_resource_start(pci, idx) == 0 || 1431 1431 !(pci_resource_flags(pci, idx) & IORESOURCE_IO)) {
+3 -3
sound/pci/trident/trident.c
··· 89 89 return -ENOENT; 90 90 } 91 91 92 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 93 - if (card == NULL) 94 - return -ENOMEM; 92 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 93 + if (err < 0) 94 + return err; 95 95 96 96 if ((err = snd_trident_create(card, pci, 97 97 pcm_channels[dev],
+3 -3
sound/pci/via82xx.c
··· 2433 2433 unsigned int i; 2434 2434 int err; 2435 2435 2436 - card = snd_card_new(index, id, THIS_MODULE, 0); 2437 - if (card == NULL) 2438 - return -ENOMEM; 2436 + err = snd_card_create(index, id, THIS_MODULE, 0, &card); 2437 + if (err < 0) 2438 + return err; 2439 2439 2440 2440 card_type = pci_id->driver_data; 2441 2441 switch (card_type) {
+3 -3
sound/pci/via82xx_modem.c
··· 1167 1167 unsigned int i; 1168 1168 int err; 1169 1169 1170 - card = snd_card_new(index, id, THIS_MODULE, 0); 1171 - if (card == NULL) 1172 - return -ENOMEM; 1170 + err = snd_card_create(index, id, THIS_MODULE, 0, &card); 1171 + if (err < 0) 1172 + return err; 1173 1173 1174 1174 card_type = pci_id->driver_data; 1175 1175 switch (card_type) {
+3 -3
sound/pci/vx222/vx222.c
··· 204 204 return -ENOENT; 205 205 } 206 206 207 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 208 - if (card == NULL) 209 - return -ENOMEM; 207 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 208 + if (err < 0) 209 + return err; 210 210 211 211 switch ((int)pci_id->driver_data) { 212 212 case VX_PCI_VX222_OLD:
+3 -3
sound/pci/ymfpci/ymfpci.c
··· 187 187 return -ENOENT; 188 188 } 189 189 190 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0); 191 - if (card == NULL) 192 - return -ENOMEM; 190 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); 191 + if (err < 0) 192 + return err; 193 193 194 194 switch (pci_id->device) { 195 195 case 0x0004: str = "YMF724"; model = "DS-1"; break;
+11 -8
sound/pcmcia/pdaudiocf/pdaudiocf.c
··· 91 91 */ 92 92 static int snd_pdacf_probe(struct pcmcia_device *link) 93 93 { 94 - int i; 94 + int i, err; 95 95 struct snd_pdacf *pdacf; 96 96 struct snd_card *card; 97 97 static struct snd_device_ops ops = { ··· 112 112 return -ENODEV; /* disabled explicitly */ 113 113 114 114 /* ok, create a card instance */ 115 - card = snd_card_new(index[i], id[i], THIS_MODULE, 0); 116 - if (card == NULL) { 115 + err = snd_card_create(index[i], id[i], THIS_MODULE, 0, &card); 116 + if (err < 0) { 117 117 snd_printk(KERN_ERR "pdacf: cannot create a card instance\n"); 118 - return -ENOMEM; 118 + return err; 119 119 } 120 120 121 121 pdacf = snd_pdacf_create(card); 122 - if (! pdacf) 123 - return -EIO; 122 + if (!pdacf) { 123 + snd_card_free(card); 124 + return -ENOMEM; 125 + } 124 126 125 - if (snd_device_new(card, SNDRV_DEV_LOWLEVEL, pdacf, &ops) < 0) { 127 + err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, pdacf, &ops); 128 + if (err < 0) { 126 129 kfree(pdacf); 127 130 snd_card_free(card); 128 - return -ENODEV; 131 + return err; 129 132 } 130 133 131 134 snd_card_set_dev(card, &handle_to_dev(link));
+18 -14
sound/pcmcia/vx/vxpocket.c
··· 130 130 /* 131 131 * create vxpocket instance 132 132 */ 133 - static struct snd_vxpocket *snd_vxpocket_new(struct snd_card *card, int ibl, 134 - struct pcmcia_device *link) 133 + static int snd_vxpocket_new(struct snd_card *card, int ibl, 134 + struct pcmcia_device *link, 135 + struct snd_vxpocket **chip_ret) 135 136 { 136 137 struct vx_core *chip; 137 138 struct snd_vxpocket *vxp; 138 139 static struct snd_device_ops ops = { 139 140 .dev_free = snd_vxpocket_dev_free, 140 141 }; 142 + int err; 141 143 142 144 chip = snd_vx_create(card, &vxpocket_hw, &snd_vxpocket_ops, 143 145 sizeof(struct snd_vxpocket) - sizeof(struct vx_core)); 144 - if (! chip) 145 - return NULL; 146 + if (!chip) 147 + return -ENOMEM; 146 148 147 - if (snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops) < 0) { 149 + err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops); 150 + if (err < 0) { 148 151 kfree(chip); 149 - return NULL; 152 + return err; 150 153 } 151 154 chip->ibl.size = ibl; 152 155 ··· 172 169 link->conf.ConfigIndex = 1; 173 170 link->conf.Present = PRESENT_OPTION; 174 171 175 - return vxp; 172 + *chip_ret = vxp; 173 + return 0; 176 174 } 177 175 178 176 ··· 296 292 { 297 293 struct snd_card *card; 298 294 struct snd_vxpocket *vxp; 299 - int i; 295 + int i, err; 300 296 301 297 /* find an empty slot from the card list */ 302 298 for (i = 0; i < SNDRV_CARDS; i++) { ··· 311 307 return -ENODEV; /* disabled explicitly */ 312 308 313 309 /* ok, create a card instance */ 314 - card = snd_card_new(index[i], id[i], THIS_MODULE, 0); 315 - if (card == NULL) { 310 + err = snd_card_create(index[i], id[i], THIS_MODULE, 0, &card); 311 + if (err < 0) { 316 312 snd_printk(KERN_ERR "vxpocket: cannot create a card instance\n"); 317 - return -ENOMEM; 313 + return err; 318 314 } 319 315 320 - vxp = snd_vxpocket_new(card, ibl[i], p_dev); 321 - if (! vxp) { 316 + err = snd_vxpocket_new(card, ibl[i], p_dev, &vxp); 317 + if (err < 0) { 322 318 snd_card_free(card); 323 - return -ENODEV; 319 + return err; 324 320 } 325 321 card->private_data = vxp; 326 322
+3 -3
sound/ppc/powermac.c
··· 58 58 char *name_ext; 59 59 int err; 60 60 61 - card = snd_card_new(index, id, THIS_MODULE, 0); 62 - if (card == NULL) 63 - return -ENOMEM; 61 + err = snd_card_create(index, id, THIS_MODULE, 0, &card); 62 + if (err < 0) 63 + return err; 64 64 65 65 if ((err = snd_pmac_new(card, &chip)) < 0) 66 66 goto __error;
+2 -4
sound/ppc/snd_ps3.c
··· 969 969 } 970 970 971 971 /* create card instance */ 972 - the_card.card = snd_card_new(index, id, THIS_MODULE, 0); 973 - if (!the_card.card) { 974 - ret = -ENXIO; 972 + ret = snd_card_create(index, id, THIS_MODULE, 0, &the_card.card); 973 + if (ret < 0) 975 974 goto clean_irq; 976 - } 977 975 978 976 strcpy(the_card.card->driver, "PS3"); 979 977 strcpy(the_card.card->shortname, "PS3");
+4 -4
sound/sh/aica.c
··· 609 609 dreamcastcard = kmalloc(sizeof(struct snd_card_aica), GFP_KERNEL); 610 610 if (unlikely(!dreamcastcard)) 611 611 return -ENOMEM; 612 - dreamcastcard->card = 613 - snd_card_new(index, SND_AICA_DRIVER, THIS_MODULE, 0); 614 - if (unlikely(!dreamcastcard->card)) { 612 + err = snd_card_create(index, SND_AICA_DRIVER, THIS_MODULE, 0, 613 + &dreamcastcard->card); 614 + if (unlikely(err < 0)) { 615 615 kfree(dreamcastcard); 616 - return -ENODEV; 616 + return err; 617 617 } 618 618 strcpy(dreamcastcard->card->driver, "snd_aica"); 619 619 strcpy(dreamcastcard->card->shortname, SND_AICA_DRIVER);
+4 -4
sound/soc/soc-core.c
··· 1311 1311 { 1312 1312 struct snd_soc_codec *codec = socdev->codec; 1313 1313 struct snd_soc_card *card = socdev->card; 1314 - int ret = 0, i; 1314 + int ret, i; 1315 1315 1316 1316 mutex_lock(&codec->mutex); 1317 1317 1318 1318 /* register a sound card */ 1319 - codec->card = snd_card_new(idx, xid, codec->owner, 0); 1320 - if (!codec->card) { 1319 + ret = snd_card_create(idx, xid, codec->owner, 0, &codec->card); 1320 + if (ret < 0) { 1321 1321 printk(KERN_ERR "asoc: can't create sound card for codec %s\n", 1322 1322 codec->name); 1323 1323 mutex_unlock(&codec->mutex); 1324 - return -ENODEV; 1324 + return ret; 1325 1325 } 1326 1326 1327 1327 codec->card->dev = socdev->dev;
+4 -3
sound/sparc/amd7930.c
··· 1018 1018 return -ENOENT; 1019 1019 } 1020 1020 1021 - card = snd_card_new(index[dev_num], id[dev_num], THIS_MODULE, 0); 1022 - if (card == NULL) 1023 - return -ENOMEM; 1021 + err = snd_card_create(index[dev_num], id[dev_num], THIS_MODULE, 0, 1022 + &card); 1023 + if (err < 0) 1024 + return err; 1024 1025 1025 1026 strcpy(card->driver, "AMD7930"); 1026 1027 strcpy(card->shortname, "Sun AMD7930");
+5 -4
sound/sparc/cs4231.c
··· 1563 1563 { 1564 1564 struct snd_card *card; 1565 1565 struct snd_cs4231 *chip; 1566 + int err; 1566 1567 1567 1568 *rcard = NULL; 1568 1569 ··· 1575 1574 return -ENOENT; 1576 1575 } 1577 1576 1578 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 1579 - sizeof(struct snd_cs4231)); 1580 - if (card == NULL) 1581 - return -ENOMEM; 1577 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 1578 + sizeof(struct snd_cs4231), &card); 1579 + if (err < 0) 1580 + return err; 1582 1581 1583 1582 strcpy(card->driver, "CS4231"); 1584 1583 strcpy(card->shortname, "Sun CS4231");
+4 -4
sound/sparc/dbri.c
··· 2612 2612 return -ENODEV; 2613 2613 } 2614 2614 2615 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 2616 - sizeof(struct snd_dbri)); 2617 - if (card == NULL) 2618 - return -ENOMEM; 2615 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 2616 + sizeof(struct snd_dbri), &card); 2617 + if (err < 0) 2618 + return err; 2619 2619 2620 2620 strcpy(card->driver, "DBRI"); 2621 2621 strcpy(card->shortname, "Sun DBRI");
+3 -4
sound/spi/at73c213.c
··· 965 965 return PTR_ERR(board->dac_clk); 966 966 } 967 967 968 - retval = -ENOMEM; 969 - 970 968 /* Allocate "card" using some unused identifiers. */ 971 969 snprintf(id, sizeof id, "at73c213_%d", board->ssc_id); 972 - card = snd_card_new(-1, id, THIS_MODULE, sizeof(struct snd_at73c213)); 973 - if (!card) 970 + retval = snd_card_create(-1, id, THIS_MODULE, 971 + sizeof(struct snd_at73c213), &card); 972 + if (retval < 0) 974 973 goto out; 975 974 976 975 chip = card->private_data;
+12 -10
sound/usb/caiaq/caiaq-device.c
··· 336 336 log("Unable to set up control system (ret=%d)\n", ret); 337 337 } 338 338 339 - static struct snd_card* create_card(struct usb_device* usb_dev) 339 + static int create_card(struct usb_device* usb_dev, struct snd_card **cardp) 340 340 { 341 341 int devnum; 342 + int err; 342 343 struct snd_card *card; 343 344 struct snd_usb_caiaqdev *dev; 344 345 ··· 348 347 break; 349 348 350 349 if (devnum >= SNDRV_CARDS) 351 - return NULL; 350 + return -ENODEV; 352 351 353 - card = snd_card_new(index[devnum], id[devnum], THIS_MODULE, 354 - sizeof(struct snd_usb_caiaqdev)); 355 - if (!card) 356 - return NULL; 352 + err = snd_card_create(index[devnum], id[devnum], THIS_MODULE, 353 + sizeof(struct snd_usb_caiaqdev), &card); 354 + if (err < 0) 355 + return err; 357 356 358 357 dev = caiaqdev(card); 359 358 dev->chip.dev = usb_dev; ··· 363 362 spin_lock_init(&dev->spinlock); 364 363 snd_card_set_dev(card, &usb_dev->dev); 365 364 366 - return card; 365 + *cardp = card; 366 + return 0; 367 367 } 368 368 369 369 static int __devinit init_card(struct snd_usb_caiaqdev *dev) ··· 443 441 struct snd_card *card; 444 442 struct usb_device *device = interface_to_usbdev(intf); 445 443 446 - card = create_card(device); 444 + ret = create_card(device, &card); 447 445 448 - if (!card) 449 - return -ENOMEM; 446 + if (ret < 0) 447 + return ret; 450 448 451 449 usb_set_intfdata(intf, card); 452 450 ret = init_card(caiaqdev(card));
+3 -3
sound/usb/usbaudio.c
··· 3463 3463 return -ENXIO; 3464 3464 } 3465 3465 3466 - card = snd_card_new(index[idx], id[idx], THIS_MODULE, 0); 3467 - if (card == NULL) { 3466 + err = snd_card_create(index[idx], id[idx], THIS_MODULE, 0, &card); 3467 + if (err < 0) { 3468 3468 snd_printk(KERN_ERR "cannot create card instance %d\n", idx); 3469 - return -ENOMEM; 3469 + return err; 3470 3470 } 3471 3471 3472 3472 chip = kzalloc(sizeof(*chip), GFP_KERNEL);
+36 -23
sound/usb/usx2y/us122l.c
··· 478 478 return true; 479 479 } 480 480 481 - static struct snd_card *usx2y_create_card(struct usb_device *device) 481 + static int usx2y_create_card(struct usb_device *device, struct snd_card **cardp) 482 482 { 483 483 int dev; 484 484 struct snd_card *card; 485 + int err; 486 + 485 487 for (dev = 0; dev < SNDRV_CARDS; ++dev) 486 488 if (enable[dev] && !snd_us122l_card_used[dev]) 487 489 break; 488 490 if (dev >= SNDRV_CARDS) 489 - return NULL; 490 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, 491 - sizeof(struct us122l)); 492 - if (!card) 493 - return NULL; 491 + return -ENODEV; 492 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 493 + sizeof(struct us122l), &card); 494 + if (err < 0) 495 + return err; 494 496 snd_us122l_card_used[US122L(card)->chip.index = dev] = 1; 495 497 496 498 US122L(card)->chip.dev = device; ··· 511 509 US122L(card)->chip.dev->devnum 512 510 ); 513 511 snd_card_set_dev(card, &device->dev); 514 - return card; 512 + *cardp = card; 513 + return 0; 515 514 } 516 515 517 - static void *us122l_usb_probe(struct usb_interface *intf, 518 - const struct usb_device_id *device_id) 516 + static int us122l_usb_probe(struct usb_interface *intf, 517 + const struct usb_device_id *device_id, 518 + struct snd_card **cardp) 519 519 { 520 520 struct usb_device *device = interface_to_usbdev(intf); 521 - struct snd_card *card = usx2y_create_card(device); 521 + struct snd_card *card; 522 + int err; 522 523 523 - if (!card) 524 - return NULL; 524 + err = usx2y_create_card(device, &card); 525 + if (err < 0) 526 + return err; 525 527 526 - if (!us122l_create_card(card) || 527 - snd_card_register(card) < 0) { 528 + if (!us122l_create_card(card)) { 528 529 snd_card_free(card); 529 - return NULL; 530 + return -EINVAL; 531 + } 532 + 533 + err = snd_card_register(card); 534 + if (err < 0) { 535 + snd_card_free(card); 536 + return err; 530 537 } 531 538 532 539 usb_get_dev(device); 533 - return card; 540 + *cardp = card; 541 + return 0; 534 542 } 535 543 536 544 static int snd_us122l_probe(struct usb_interface *intf, 537 545 const struct usb_device_id *id) 538 546 { 539 547 struct snd_card *card; 548 + int err; 549 + 540 550 snd_printdd(KERN_DEBUG"%p:%i\n", 541 551 intf, intf->cur_altsetting->desc.bInterfaceNumber); 542 552 if (intf->cur_altsetting->desc.bInterfaceNumber != 1) 543 553 return 0; 544 554 545 - card = us122l_usb_probe(usb_get_intf(intf), id); 546 - 547 - if (card) { 548 - usb_set_intfdata(intf, card); 549 - return 0; 555 + err = us122l_usb_probe(usb_get_intf(intf), id, &card); 556 + if (err < 0) { 557 + usb_put_intf(intf); 558 + return err; 550 559 } 551 560 552 - usb_put_intf(intf); 553 - return -EIO; 561 + usb_set_intfdata(intf, card); 562 + return 0; 554 563 } 555 564 556 565 static void snd_us122l_disconnect(struct usb_interface *intf)
+33 -19
sound/usb/usx2y/usbusx2y.c
··· 333 333 { /* terminator */ } 334 334 }; 335 335 336 - static struct snd_card *usX2Y_create_card(struct usb_device *device) 336 + static int usX2Y_create_card(struct usb_device *device, struct snd_card **cardp) 337 337 { 338 338 int dev; 339 339 struct snd_card * card; 340 + int err; 341 + 340 342 for (dev = 0; dev < SNDRV_CARDS; ++dev) 341 343 if (enable[dev] && !snd_usX2Y_card_used[dev]) 342 344 break; 343 345 if (dev >= SNDRV_CARDS) 344 - return NULL; 345 - card = snd_card_new(index[dev], id[dev], THIS_MODULE, sizeof(struct usX2Ydev)); 346 - if (!card) 347 - return NULL; 346 + return -ENODEV; 347 + err = snd_card_create(index[dev], id[dev], THIS_MODULE, 348 + sizeof(struct usX2Ydev), &card); 349 + if (err < 0) 350 + return err; 348 351 snd_usX2Y_card_used[usX2Y(card)->chip.index = dev] = 1; 349 352 card->private_free = snd_usX2Y_card_private_free; 350 353 usX2Y(card)->chip.dev = device; ··· 365 362 usX2Y(card)->chip.dev->bus->busnum, usX2Y(card)->chip.dev->devnum 366 363 ); 367 364 snd_card_set_dev(card, &device->dev); 368 - return card; 365 + *cardp = card; 366 + return 0; 369 367 } 370 368 371 369 372 - static void *usX2Y_usb_probe(struct usb_device *device, struct usb_interface *intf, const struct usb_device_id *device_id) 370 + static int usX2Y_usb_probe(struct usb_device *device, 371 + struct usb_interface *intf, 372 + const struct usb_device_id *device_id, 373 + struct snd_card **cardp) 373 374 { 374 375 int err; 375 376 struct snd_card * card; 377 + 378 + *cardp = NULL; 376 379 if (le16_to_cpu(device->descriptor.idVendor) != 0x1604 || 377 380 (le16_to_cpu(device->descriptor.idProduct) != USB_ID_US122 && 378 381 le16_to_cpu(device->descriptor.idProduct) != USB_ID_US224 && 379 - le16_to_cpu(device->descriptor.idProduct) != USB_ID_US428) || 380 - !(card = usX2Y_create_card(device))) 381 - return NULL; 382 + le16_to_cpu(device->descriptor.idProduct) != USB_ID_US428)) 383 + return -EINVAL; 384 + 385 + err = usX2Y_create_card(device, &card); 386 + if (err < 0) 387 + return err; 382 388 if ((err = usX2Y_hwdep_new(card, device)) < 0 || 383 389 (err = snd_card_register(card)) < 0) { 384 390 snd_card_free(card); 385 - return NULL; 391 + return err; 386 392 } 387 - return card; 393 + *cardp = card; 394 + return 0; 388 395 } 389 396 390 397 /* ··· 402 389 */ 403 390 static int snd_usX2Y_probe(struct usb_interface *intf, const struct usb_device_id *id) 404 391 { 405 - void *chip; 406 - chip = usX2Y_usb_probe(interface_to_usbdev(intf), intf, id); 407 - if (chip) { 408 - usb_set_intfdata(intf, chip); 409 - return 0; 410 - } else 411 - return -EIO; 392 + struct snd_card *card; 393 + int err; 394 + 395 + err = usX2Y_usb_probe(interface_to_usbdev(intf), intf, id, &card); 396 + if (err < 0) 397 + return err; 398 + dev_set_drvdata(&intf->dev, card); 399 + return 0; 412 400 } 413 401 414 402 static void snd_usX2Y_disconnect(struct usb_interface *intf)