diff options
author | Takashi Iwai <tiwai@suse.de> | 2009-01-28 07:08:32 (GMT) |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2009-01-28 07:08:32 (GMT) |
commit | 67fcdead3c7424d51e7108c220c9ab1a5e752ed3 (patch) | |
tree | 3c48fabced8e519ef3f83209a793dfea48dbbfa8 /sound/usb/caiaq | |
parent | 006f367e38fb45e2f161c0f500c74449ae63e866 (diff) | |
parent | b1a0aac05f044e78a589bfd7a9e2334aa640eb45 (diff) | |
download | linux-fsl-qoriq-67fcdead3c7424d51e7108c220c9ab1a5e752ed3.tar.xz |
Merge branch 'topic/snd_card_new-err' into topic/asoc
Conflicts:
sound/soc/soc-core.c
Diffstat (limited to 'sound/usb/caiaq')
-rw-r--r-- | sound/usb/caiaq/caiaq-device.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/sound/usb/caiaq/caiaq-device.c b/sound/usb/caiaq/caiaq-device.c index 41c36b0..09aed23 100644 --- a/sound/usb/caiaq/caiaq-device.c +++ b/sound/usb/caiaq/caiaq-device.c @@ -336,9 +336,10 @@ static void __devinit setup_card(struct snd_usb_caiaqdev *dev) log("Unable to set up control system (ret=%d)\n", ret); } -static struct snd_card* create_card(struct usb_device* usb_dev) +static int create_card(struct usb_device* usb_dev, struct snd_card **cardp) { int devnum; + int err; struct snd_card *card; struct snd_usb_caiaqdev *dev; @@ -347,12 +348,12 @@ static struct snd_card* create_card(struct usb_device* usb_dev) break; if (devnum >= SNDRV_CARDS) - return NULL; + return -ENODEV; - card = snd_card_new(index[devnum], id[devnum], THIS_MODULE, - sizeof(struct snd_usb_caiaqdev)); - if (!card) - return NULL; + err = snd_card_create(index[devnum], id[devnum], THIS_MODULE, + sizeof(struct snd_usb_caiaqdev), &card); + if (err < 0) + return err; dev = caiaqdev(card); dev->chip.dev = usb_dev; @@ -362,7 +363,8 @@ static struct snd_card* create_card(struct usb_device* usb_dev) spin_lock_init(&dev->spinlock); snd_card_set_dev(card, &usb_dev->dev); - return card; + *cardp = card; + return 0; } static int __devinit init_card(struct snd_usb_caiaqdev *dev) @@ -441,10 +443,10 @@ static int __devinit snd_probe(struct usb_interface *intf, struct snd_card *card; struct usb_device *device = interface_to_usbdev(intf); - card = create_card(device); + ret = create_card(device, &card); - if (!card) - return -ENOMEM; + if (ret < 0) + return ret; usb_set_intfdata(intf, card); ret = init_card(caiaqdev(card)); |