Loading sound/usb/caiaq/caiaq-device.c +8 −7 Original line number Diff line number Diff line Loading @@ -336,7 +336,7 @@ 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; Loading @@ -348,12 +348,12 @@ static struct snd_card* create_card(struct usb_device* usb_dev) break; if (devnum >= SNDRV_CARDS) return NULL; return -ENODEV; err = snd_card_create(index[devnum], id[devnum], THIS_MODULE, sizeof(struct snd_usb_caiaqdev), &card); if (err < 0) return NULL; return err; dev = caiaqdev(card); dev->chip.dev = usb_dev; Loading @@ -363,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) Loading Loading @@ -442,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)); Loading sound/usb/usx2y/us122l.c +31 −20 Original line number Diff line number Diff line Loading @@ -478,7 +478,7 @@ static bool us122l_create_card(struct snd_card *card) return true; } static struct snd_card *usx2y_create_card(struct usb_device *device) static int usx2y_create_card(struct usb_device *device, struct snd_card **cardp) { int dev; struct snd_card *card; Loading @@ -488,11 +488,11 @@ static struct snd_card *usx2y_create_card(struct usb_device *device) if (enable[dev] && !snd_us122l_card_used[dev]) break; if (dev >= SNDRV_CARDS) return NULL; return -ENODEV; err = snd_card_create(index[dev], id[dev], THIS_MODULE, sizeof(struct us122l), &card); if (err < 0) return NULL; return err; snd_us122l_card_used[US122L(card)->chip.index = dev] = 1; US122L(card)->chip.dev = device; Loading @@ -511,48 +511,59 @@ static struct snd_card *usx2y_create_card(struct usb_device *device) US122L(card)->chip.dev->devnum ); snd_card_set_dev(card, &device->dev); return card; *cardp = card; return 0; } static void *us122l_usb_probe(struct usb_interface *intf, const struct usb_device_id *device_id) static int us122l_usb_probe(struct usb_interface *intf, const struct usb_device_id *device_id, struct snd_card **cardp) { struct usb_device *device = interface_to_usbdev(intf); struct snd_card *card = usx2y_create_card(device); struct snd_card *card; int err; if (!card) return NULL; err = usx2y_create_card(device, &card); if (err < 0) return err; if (!us122l_create_card(card) || snd_card_register(card) < 0) { if (!us122l_create_card(card)) { snd_card_free(card); return -EINVAL; } err = snd_card_register(card); if (err < 0) { snd_card_free(card); return NULL; return err; } usb_get_dev(device); return card; *cardp = card; return 0; } static int snd_us122l_probe(struct usb_interface *intf, const struct usb_device_id *id) { struct snd_card *card; int err; snd_printdd(KERN_DEBUG"%p:%i\n", intf, intf->cur_altsetting->desc.bInterfaceNumber); if (intf->cur_altsetting->desc.bInterfaceNumber != 1) return 0; card = us122l_usb_probe(usb_get_intf(intf), id); err = us122l_usb_probe(usb_get_intf(intf), id, &card); if (err < 0) { usb_put_intf(intf); return err; } if (card) { usb_set_intfdata(intf, card); return 0; } usb_put_intf(intf); return -EIO; } static void snd_us122l_disconnect(struct usb_interface *intf) { struct snd_card *card; Loading sound/usb/usx2y/usbusx2y.c +28 −17 Original line number Diff line number Diff line Loading @@ -333,7 +333,7 @@ static struct usb_device_id snd_usX2Y_usb_id_table[] = { { /* terminator */ } }; static struct snd_card *usX2Y_create_card(struct usb_device *device) static int usX2Y_create_card(struct usb_device *device, struct snd_card **cardp) { int dev; struct snd_card * card; Loading @@ -343,11 +343,11 @@ static struct snd_card *usX2Y_create_card(struct usb_device *device) if (enable[dev] && !snd_usX2Y_card_used[dev]) break; if (dev >= SNDRV_CARDS) return NULL; return -ENODEV; err = snd_card_create(index[dev], id[dev], THIS_MODULE, sizeof(struct usX2Ydev), &card); if (err < 0) return NULL; return err; snd_usX2Y_card_used[usX2Y(card)->chip.index = dev] = 1; card->private_free = snd_usX2Y_card_private_free; usX2Y(card)->chip.dev = device; Loading @@ -365,26 +365,36 @@ static struct snd_card *usX2Y_create_card(struct usb_device *device) usX2Y(card)->chip.dev->bus->busnum, usX2Y(card)->chip.dev->devnum ); snd_card_set_dev(card, &device->dev); return card; *cardp = card; return 0; } static void *usX2Y_usb_probe(struct usb_device *device, struct usb_interface *intf, const struct usb_device_id *device_id) static int usX2Y_usb_probe(struct usb_device *device, struct usb_interface *intf, const struct usb_device_id *device_id, struct snd_card **cardp) { int err; struct snd_card * card; *cardp = NULL; if (le16_to_cpu(device->descriptor.idVendor) != 0x1604 || (le16_to_cpu(device->descriptor.idProduct) != USB_ID_US122 && le16_to_cpu(device->descriptor.idProduct) != USB_ID_US224 && le16_to_cpu(device->descriptor.idProduct) != USB_ID_US428) || !(card = usX2Y_create_card(device))) return NULL; le16_to_cpu(device->descriptor.idProduct) != USB_ID_US428)) return -EINVAL; err = usX2Y_create_card(device, &card); if (err < 0) return err; if ((err = usX2Y_hwdep_new(card, device)) < 0 || (err = snd_card_register(card)) < 0) { snd_card_free(card); return NULL; return err; } return card; *cardp = card; return 0; } /* Loading @@ -392,13 +402,14 @@ static void *usX2Y_usb_probe(struct usb_device *device, struct usb_interface *in */ static int snd_usX2Y_probe(struct usb_interface *intf, const struct usb_device_id *id) { void *chip; chip = usX2Y_usb_probe(interface_to_usbdev(intf), intf, id); if (chip) { usb_set_intfdata(intf, chip); struct snd_card *card; int err; err = usX2Y_usb_probe(interface_to_usbdev(intf), intf, id, &card); if (err < 0) return err; dev_set_drvdata(&intf->dev, card); return 0; } else return -EIO; } static void snd_usX2Y_disconnect(struct usb_interface *intf) Loading Loading
sound/usb/caiaq/caiaq-device.c +8 −7 Original line number Diff line number Diff line Loading @@ -336,7 +336,7 @@ 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; Loading @@ -348,12 +348,12 @@ static struct snd_card* create_card(struct usb_device* usb_dev) break; if (devnum >= SNDRV_CARDS) return NULL; return -ENODEV; err = snd_card_create(index[devnum], id[devnum], THIS_MODULE, sizeof(struct snd_usb_caiaqdev), &card); if (err < 0) return NULL; return err; dev = caiaqdev(card); dev->chip.dev = usb_dev; Loading @@ -363,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) Loading Loading @@ -442,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)); Loading
sound/usb/usx2y/us122l.c +31 −20 Original line number Diff line number Diff line Loading @@ -478,7 +478,7 @@ static bool us122l_create_card(struct snd_card *card) return true; } static struct snd_card *usx2y_create_card(struct usb_device *device) static int usx2y_create_card(struct usb_device *device, struct snd_card **cardp) { int dev; struct snd_card *card; Loading @@ -488,11 +488,11 @@ static struct snd_card *usx2y_create_card(struct usb_device *device) if (enable[dev] && !snd_us122l_card_used[dev]) break; if (dev >= SNDRV_CARDS) return NULL; return -ENODEV; err = snd_card_create(index[dev], id[dev], THIS_MODULE, sizeof(struct us122l), &card); if (err < 0) return NULL; return err; snd_us122l_card_used[US122L(card)->chip.index = dev] = 1; US122L(card)->chip.dev = device; Loading @@ -511,48 +511,59 @@ static struct snd_card *usx2y_create_card(struct usb_device *device) US122L(card)->chip.dev->devnum ); snd_card_set_dev(card, &device->dev); return card; *cardp = card; return 0; } static void *us122l_usb_probe(struct usb_interface *intf, const struct usb_device_id *device_id) static int us122l_usb_probe(struct usb_interface *intf, const struct usb_device_id *device_id, struct snd_card **cardp) { struct usb_device *device = interface_to_usbdev(intf); struct snd_card *card = usx2y_create_card(device); struct snd_card *card; int err; if (!card) return NULL; err = usx2y_create_card(device, &card); if (err < 0) return err; if (!us122l_create_card(card) || snd_card_register(card) < 0) { if (!us122l_create_card(card)) { snd_card_free(card); return -EINVAL; } err = snd_card_register(card); if (err < 0) { snd_card_free(card); return NULL; return err; } usb_get_dev(device); return card; *cardp = card; return 0; } static int snd_us122l_probe(struct usb_interface *intf, const struct usb_device_id *id) { struct snd_card *card; int err; snd_printdd(KERN_DEBUG"%p:%i\n", intf, intf->cur_altsetting->desc.bInterfaceNumber); if (intf->cur_altsetting->desc.bInterfaceNumber != 1) return 0; card = us122l_usb_probe(usb_get_intf(intf), id); err = us122l_usb_probe(usb_get_intf(intf), id, &card); if (err < 0) { usb_put_intf(intf); return err; } if (card) { usb_set_intfdata(intf, card); return 0; } usb_put_intf(intf); return -EIO; } static void snd_us122l_disconnect(struct usb_interface *intf) { struct snd_card *card; Loading
sound/usb/usx2y/usbusx2y.c +28 −17 Original line number Diff line number Diff line Loading @@ -333,7 +333,7 @@ static struct usb_device_id snd_usX2Y_usb_id_table[] = { { /* terminator */ } }; static struct snd_card *usX2Y_create_card(struct usb_device *device) static int usX2Y_create_card(struct usb_device *device, struct snd_card **cardp) { int dev; struct snd_card * card; Loading @@ -343,11 +343,11 @@ static struct snd_card *usX2Y_create_card(struct usb_device *device) if (enable[dev] && !snd_usX2Y_card_used[dev]) break; if (dev >= SNDRV_CARDS) return NULL; return -ENODEV; err = snd_card_create(index[dev], id[dev], THIS_MODULE, sizeof(struct usX2Ydev), &card); if (err < 0) return NULL; return err; snd_usX2Y_card_used[usX2Y(card)->chip.index = dev] = 1; card->private_free = snd_usX2Y_card_private_free; usX2Y(card)->chip.dev = device; Loading @@ -365,26 +365,36 @@ static struct snd_card *usX2Y_create_card(struct usb_device *device) usX2Y(card)->chip.dev->bus->busnum, usX2Y(card)->chip.dev->devnum ); snd_card_set_dev(card, &device->dev); return card; *cardp = card; return 0; } static void *usX2Y_usb_probe(struct usb_device *device, struct usb_interface *intf, const struct usb_device_id *device_id) static int usX2Y_usb_probe(struct usb_device *device, struct usb_interface *intf, const struct usb_device_id *device_id, struct snd_card **cardp) { int err; struct snd_card * card; *cardp = NULL; if (le16_to_cpu(device->descriptor.idVendor) != 0x1604 || (le16_to_cpu(device->descriptor.idProduct) != USB_ID_US122 && le16_to_cpu(device->descriptor.idProduct) != USB_ID_US224 && le16_to_cpu(device->descriptor.idProduct) != USB_ID_US428) || !(card = usX2Y_create_card(device))) return NULL; le16_to_cpu(device->descriptor.idProduct) != USB_ID_US428)) return -EINVAL; err = usX2Y_create_card(device, &card); if (err < 0) return err; if ((err = usX2Y_hwdep_new(card, device)) < 0 || (err = snd_card_register(card)) < 0) { snd_card_free(card); return NULL; return err; } return card; *cardp = card; return 0; } /* Loading @@ -392,13 +402,14 @@ static void *usX2Y_usb_probe(struct usb_device *device, struct usb_interface *in */ static int snd_usX2Y_probe(struct usb_interface *intf, const struct usb_device_id *id) { void *chip; chip = usX2Y_usb_probe(interface_to_usbdev(intf), intf, id); if (chip) { usb_set_intfdata(intf, chip); struct snd_card *card; int err; err = usX2Y_usb_probe(interface_to_usbdev(intf), intf, id, &card); if (err < 0) return err; dev_set_drvdata(&intf->dev, card); return 0; } else return -EIO; } static void snd_usX2Y_disconnect(struct usb_interface *intf) Loading