diff options
| -rw-r--r-- | sound/usb/usx2y/us122l.c | 28 | ||||
| -rw-r--r-- | sound/usb/usx2y/us122l.h | 2 |
2 files changed, 24 insertions, 6 deletions
diff --git a/sound/usb/usx2y/us122l.c b/sound/usb/usx2y/us122l.c index f71cd28eca6b..91bb29666d26 100644 --- a/sound/usb/usx2y/us122l.c +++ b/sound/usb/usx2y/us122l.c | |||
| @@ -194,7 +194,8 @@ static int usb_stream_hwdep_open(struct snd_hwdep *hw, struct file *file) | |||
| 194 | if (!us122l->first) | 194 | if (!us122l->first) |
| 195 | us122l->first = file; | 195 | us122l->first = file; |
| 196 | 196 | ||
| 197 | if (us122l->dev->descriptor.idProduct == USB_ID_US144) { | 197 | if (us122l->dev->descriptor.idProduct == USB_ID_US144 || |
| 198 | us122l->dev->descriptor.idProduct == USB_ID_US144MKII) { | ||
| 198 | iface = usb_ifnum_to_if(us122l->dev, 0); | 199 | iface = usb_ifnum_to_if(us122l->dev, 0); |
| 199 | usb_autopm_get_interface(iface); | 200 | usb_autopm_get_interface(iface); |
| 200 | } | 201 | } |
| @@ -209,7 +210,8 @@ static int usb_stream_hwdep_release(struct snd_hwdep *hw, struct file *file) | |||
| 209 | struct usb_interface *iface; | 210 | struct usb_interface *iface; |
| 210 | snd_printdd(KERN_DEBUG "%p %p\n", hw, file); | 211 | snd_printdd(KERN_DEBUG "%p %p\n", hw, file); |
| 211 | 212 | ||
| 212 | if (us122l->dev->descriptor.idProduct == USB_ID_US144) { | 213 | if (us122l->dev->descriptor.idProduct == USB_ID_US144 || |
| 214 | us122l->dev->descriptor.idProduct == USB_ID_US144MKII) { | ||
| 213 | iface = usb_ifnum_to_if(us122l->dev, 0); | 215 | iface = usb_ifnum_to_if(us122l->dev, 0); |
| 214 | usb_autopm_put_interface(iface); | 216 | usb_autopm_put_interface(iface); |
| 215 | } | 217 | } |
| @@ -476,7 +478,8 @@ static bool us122l_create_card(struct snd_card *card) | |||
| 476 | int err; | 478 | int err; |
| 477 | struct us122l *us122l = US122L(card); | 479 | struct us122l *us122l = US122L(card); |
| 478 | 480 | ||
| 479 | if (us122l->dev->descriptor.idProduct == USB_ID_US144) { | 481 | if (us122l->dev->descriptor.idProduct == USB_ID_US144 || |
| 482 | us122l->dev->descriptor.idProduct == USB_ID_US144MKII) { | ||
| 480 | err = usb_set_interface(us122l->dev, 0, 1); | 483 | err = usb_set_interface(us122l->dev, 0, 1); |
| 481 | if (err) { | 484 | if (err) { |
| 482 | snd_printk(KERN_ERR "usb_set_interface error \n"); | 485 | snd_printk(KERN_ERR "usb_set_interface error \n"); |
| @@ -495,7 +498,8 @@ static bool us122l_create_card(struct snd_card *card) | |||
| 495 | if (!us122l_start(us122l, 44100, 256)) | 498 | if (!us122l_start(us122l, 44100, 256)) |
| 496 | return false; | 499 | return false; |
| 497 | 500 | ||
| 498 | if (us122l->dev->descriptor.idProduct == USB_ID_US144) | 501 | if (us122l->dev->descriptor.idProduct == USB_ID_US144 || |
| 502 | us122l->dev->descriptor.idProduct == USB_ID_US144MKII) | ||
| 499 | err = us144_create_usbmidi(card); | 503 | err = us144_create_usbmidi(card); |
| 500 | else | 504 | else |
| 501 | err = us122l_create_usbmidi(card); | 505 | err = us122l_create_usbmidi(card); |
| @@ -597,7 +601,8 @@ static int snd_us122l_probe(struct usb_interface *intf, | |||
| 597 | struct snd_card *card; | 601 | struct snd_card *card; |
| 598 | int err; | 602 | int err; |
| 599 | 603 | ||
| 600 | if (device->descriptor.idProduct == USB_ID_US144 | 604 | if ((device->descriptor.idProduct == USB_ID_US144 || |
| 605 | device->descriptor.idProduct == USB_ID_US144MKII) | ||
| 601 | && device->speed == USB_SPEED_HIGH) { | 606 | && device->speed == USB_SPEED_HIGH) { |
| 602 | snd_printk(KERN_ERR "disable ehci-hcd to run US-144 \n"); | 607 | snd_printk(KERN_ERR "disable ehci-hcd to run US-144 \n"); |
| 603 | return -ENODEV; | 608 | return -ENODEV; |
| @@ -692,7 +697,8 @@ static int snd_us122l_resume(struct usb_interface *intf) | |||
| 692 | 697 | ||
| 693 | mutex_lock(&us122l->mutex); | 698 | mutex_lock(&us122l->mutex); |
| 694 | /* needed, doesn't restart without: */ | 699 | /* needed, doesn't restart without: */ |
| 695 | if (us122l->dev->descriptor.idProduct == USB_ID_US144) { | 700 | if (us122l->dev->descriptor.idProduct == USB_ID_US144 || |
| 701 | us122l->dev->descriptor.idProduct == USB_ID_US144MKII) { | ||
| 696 | err = usb_set_interface(us122l->dev, 0, 1); | 702 | err = usb_set_interface(us122l->dev, 0, 1); |
| 697 | if (err) { | 703 | if (err) { |
| 698 | snd_printk(KERN_ERR "usb_set_interface error \n"); | 704 | snd_printk(KERN_ERR "usb_set_interface error \n"); |
| @@ -737,6 +743,16 @@ static struct usb_device_id snd_us122l_usb_id_table[] = { | |||
| 737 | .idVendor = 0x0644, | 743 | .idVendor = 0x0644, |
| 738 | .idProduct = USB_ID_US144 | 744 | .idProduct = USB_ID_US144 |
| 739 | }, | 745 | }, |
| 746 | { | ||
| 747 | .match_flags = USB_DEVICE_ID_MATCH_DEVICE, | ||
| 748 | .idVendor = 0x0644, | ||
| 749 | .idProduct = USB_ID_US122MKII | ||
| 750 | }, | ||
| 751 | { | ||
| 752 | .match_flags = USB_DEVICE_ID_MATCH_DEVICE, | ||
| 753 | .idVendor = 0x0644, | ||
| 754 | .idProduct = USB_ID_US144MKII | ||
| 755 | }, | ||
| 740 | { /* terminator */ } | 756 | { /* terminator */ } |
| 741 | }; | 757 | }; |
| 742 | 758 | ||
diff --git a/sound/usb/usx2y/us122l.h b/sound/usb/usx2y/us122l.h index 4daf1982e821..f263b3f96c86 100644 --- a/sound/usb/usx2y/us122l.h +++ b/sound/usb/usx2y/us122l.h | |||
| @@ -25,5 +25,7 @@ struct us122l { | |||
| 25 | 25 | ||
| 26 | #define USB_ID_US122L 0x800E | 26 | #define USB_ID_US122L 0x800E |
| 27 | #define USB_ID_US144 0x800F | 27 | #define USB_ID_US144 0x800F |
| 28 | #define USB_ID_US122MKII 0x8021 | ||
| 29 | #define USB_ID_US144MKII 0x8020 | ||
| 28 | 30 | ||
| 29 | #endif | 31 | #endif |
