|
@@ -59,7 +59,7 @@ static int us122l_create_usbmidi(struct snd_card *card)
|
|
|
.type = QUIRK_MIDI_US122L,
|
|
|
.data = &quirk_data
|
|
|
};
|
|
|
- struct usb_device *dev = US122L(card)->chip.dev;
|
|
|
+ struct usb_device *dev = US122L(card)->dev;
|
|
|
struct usb_interface *iface = usb_ifnum_to_if(dev, 1);
|
|
|
|
|
|
return snd_usbmidi_create(card, iface,
|
|
@@ -81,7 +81,7 @@ static int us144_create_usbmidi(struct snd_card *card)
|
|
|
.type = QUIRK_MIDI_US122L,
|
|
|
.data = &quirk_data
|
|
|
};
|
|
|
- struct usb_device *dev = US122L(card)->chip.dev;
|
|
|
+ struct usb_device *dev = US122L(card)->dev;
|
|
|
struct usb_interface *iface = usb_ifnum_to_if(dev, 0);
|
|
|
|
|
|
return snd_usbmidi_create(card, iface,
|
|
@@ -194,11 +194,11 @@ static int usb_stream_hwdep_open(struct snd_hwdep *hw, struct file *file)
|
|
|
if (!us122l->first)
|
|
|
us122l->first = file;
|
|
|
|
|
|
- if (us122l->chip.dev->descriptor.idProduct == USB_ID_US144) {
|
|
|
- iface = usb_ifnum_to_if(us122l->chip.dev, 0);
|
|
|
+ if (us122l->dev->descriptor.idProduct == USB_ID_US144) {
|
|
|
+ iface = usb_ifnum_to_if(us122l->dev, 0);
|
|
|
usb_autopm_get_interface(iface);
|
|
|
}
|
|
|
- iface = usb_ifnum_to_if(us122l->chip.dev, 1);
|
|
|
+ iface = usb_ifnum_to_if(us122l->dev, 1);
|
|
|
usb_autopm_get_interface(iface);
|
|
|
return 0;
|
|
|
}
|
|
@@ -209,11 +209,11 @@ static int usb_stream_hwdep_release(struct snd_hwdep *hw, struct file *file)
|
|
|
struct usb_interface *iface;
|
|
|
snd_printdd(KERN_DEBUG "%p %p\n", hw, file);
|
|
|
|
|
|
- if (us122l->chip.dev->descriptor.idProduct == USB_ID_US144) {
|
|
|
- iface = usb_ifnum_to_if(us122l->chip.dev, 0);
|
|
|
+ if (us122l->dev->descriptor.idProduct == USB_ID_US144) {
|
|
|
+ iface = usb_ifnum_to_if(us122l->dev, 0);
|
|
|
usb_autopm_put_interface(iface);
|
|
|
}
|
|
|
- iface = usb_ifnum_to_if(us122l->chip.dev, 1);
|
|
|
+ iface = usb_ifnum_to_if(us122l->dev, 1);
|
|
|
usb_autopm_put_interface(iface);
|
|
|
if (us122l->first == file)
|
|
|
us122l->first = NULL;
|
|
@@ -330,7 +330,7 @@ static bool us122l_start(struct us122l *us122l,
|
|
|
unsigned use_packsize = 0;
|
|
|
bool success = false;
|
|
|
|
|
|
- if (us122l->chip.dev->speed == USB_SPEED_HIGH) {
|
|
|
+ if (us122l->dev->speed == USB_SPEED_HIGH) {
|
|
|
/* The us-122l's descriptor defaults to iso max_packsize 78,
|
|
|
which isn't needed for samplerates <= 48000.
|
|
|
Lets save some memory:
|
|
@@ -347,11 +347,11 @@ static bool us122l_start(struct us122l *us122l,
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
- if (!usb_stream_new(&us122l->sk, us122l->chip.dev, 1, 2,
|
|
|
+ if (!usb_stream_new(&us122l->sk, us122l->dev, 1, 2,
|
|
|
rate, use_packsize, period_frames, 6))
|
|
|
goto out;
|
|
|
|
|
|
- err = us122l_set_sample_rate(us122l->chip.dev, rate);
|
|
|
+ err = us122l_set_sample_rate(us122l->dev, rate);
|
|
|
if (err < 0) {
|
|
|
us122l_stop(us122l);
|
|
|
snd_printk(KERN_ERR "us122l_set_sample_rate error \n");
|
|
@@ -390,7 +390,7 @@ static int usb_stream_hwdep_ioctl(struct snd_hwdep *hw, struct file *file,
|
|
|
err = -ENXIO;
|
|
|
goto free;
|
|
|
}
|
|
|
- high_speed = us122l->chip.dev->speed == USB_SPEED_HIGH;
|
|
|
+ high_speed = us122l->dev->speed == USB_SPEED_HIGH;
|
|
|
if ((cfg->sample_rate != 44100 && cfg->sample_rate != 48000 &&
|
|
|
(!high_speed ||
|
|
|
(cfg->sample_rate != 88200 && cfg->sample_rate != 96000))) ||
|
|
@@ -450,7 +450,7 @@ static int usb_stream_hwdep_new(struct snd_card *card)
|
|
|
{
|
|
|
int err;
|
|
|
struct snd_hwdep *hw;
|
|
|
- struct usb_device *dev = US122L(card)->chip.dev;
|
|
|
+ struct usb_device *dev = US122L(card)->dev;
|
|
|
|
|
|
err = snd_hwdep_new(card, SND_USB_STREAM_ID, 0, &hw);
|
|
|
if (err < 0)
|
|
@@ -476,26 +476,26 @@ static bool us122l_create_card(struct snd_card *card)
|
|
|
int err;
|
|
|
struct us122l *us122l = US122L(card);
|
|
|
|
|
|
- if (us122l->chip.dev->descriptor.idProduct == USB_ID_US144) {
|
|
|
- err = usb_set_interface(us122l->chip.dev, 0, 1);
|
|
|
+ if (us122l->dev->descriptor.idProduct == USB_ID_US144) {
|
|
|
+ err = usb_set_interface(us122l->dev, 0, 1);
|
|
|
if (err) {
|
|
|
snd_printk(KERN_ERR "usb_set_interface error \n");
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
- err = usb_set_interface(us122l->chip.dev, 1, 1);
|
|
|
+ err = usb_set_interface(us122l->dev, 1, 1);
|
|
|
if (err) {
|
|
|
snd_printk(KERN_ERR "usb_set_interface error \n");
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- pt_info_set(us122l->chip.dev, 0x11);
|
|
|
- pt_info_set(us122l->chip.dev, 0x10);
|
|
|
+ pt_info_set(us122l->dev, 0x11);
|
|
|
+ pt_info_set(us122l->dev, 0x10);
|
|
|
|
|
|
if (!us122l_start(us122l, 44100, 256))
|
|
|
return false;
|
|
|
|
|
|
- if (us122l->chip.dev->descriptor.idProduct == USB_ID_US144)
|
|
|
+ if (us122l->dev->descriptor.idProduct == USB_ID_US144)
|
|
|
err = us144_create_usbmidi(card);
|
|
|
else
|
|
|
err = us122l_create_usbmidi(card);
|
|
@@ -520,7 +520,7 @@ static bool us122l_create_card(struct snd_card *card)
|
|
|
static void snd_us122l_free(struct snd_card *card)
|
|
|
{
|
|
|
struct us122l *us122l = US122L(card);
|
|
|
- int index = us122l->chip.index;
|
|
|
+ int index = us122l->card_index;
|
|
|
if (index >= 0 && index < SNDRV_CARDS)
|
|
|
snd_us122l_card_used[index] = 0;
|
|
|
}
|
|
@@ -540,10 +540,9 @@ static int usx2y_create_card(struct usb_device *device, struct snd_card **cardp)
|
|
|
sizeof(struct us122l), &card);
|
|
|
if (err < 0)
|
|
|
return err;
|
|
|
- snd_us122l_card_used[US122L(card)->chip.index = dev] = 1;
|
|
|
+ snd_us122l_card_used[US122L(card)->card_index = dev] = 1;
|
|
|
card->private_free = snd_us122l_free;
|
|
|
- US122L(card)->chip.dev = device;
|
|
|
- US122L(card)->chip.card = card;
|
|
|
+ US122L(card)->dev = device;
|
|
|
mutex_init(&US122L(card)->mutex);
|
|
|
init_waitqueue_head(&US122L(card)->sk.sleep);
|
|
|
INIT_LIST_HEAD(&US122L(card)->midi_list);
|
|
@@ -554,8 +553,8 @@ static int usx2y_create_card(struct usb_device *device, struct snd_card **cardp)
|
|
|
le16_to_cpu(device->descriptor.idVendor),
|
|
|
le16_to_cpu(device->descriptor.idProduct),
|
|
|
0,
|
|
|
- US122L(card)->chip.dev->bus->busnum,
|
|
|
- US122L(card)->chip.dev->devnum
|
|
|
+ US122L(card)->dev->bus->busnum,
|
|
|
+ US122L(card)->dev->devnum
|
|
|
);
|
|
|
*cardp = card;
|
|
|
return 0;
|
|
@@ -635,16 +634,15 @@ static void snd_us122l_disconnect(struct usb_interface *intf)
|
|
|
mutex_lock(&us122l->mutex);
|
|
|
us122l_stop(us122l);
|
|
|
mutex_unlock(&us122l->mutex);
|
|
|
- us122l->chip.shutdown = 1;
|
|
|
|
|
|
/* release the midi resources */
|
|
|
list_for_each(p, &us122l->midi_list) {
|
|
|
snd_usbmidi_disconnect(p);
|
|
|
}
|
|
|
|
|
|
- usb_put_intf(usb_ifnum_to_if(us122l->chip.dev, 0));
|
|
|
- usb_put_intf(usb_ifnum_to_if(us122l->chip.dev, 1));
|
|
|
- usb_put_dev(us122l->chip.dev);
|
|
|
+ usb_put_intf(usb_ifnum_to_if(us122l->dev, 0));
|
|
|
+ usb_put_intf(usb_ifnum_to_if(us122l->dev, 1));
|
|
|
+ usb_put_dev(us122l->dev);
|
|
|
|
|
|
while (atomic_read(&us122l->mmap_count))
|
|
|
msleep(500);
|
|
@@ -694,23 +692,23 @@ static int snd_us122l_resume(struct usb_interface *intf)
|
|
|
|
|
|
mutex_lock(&us122l->mutex);
|
|
|
/* needed, doesn't restart without: */
|
|
|
- if (us122l->chip.dev->descriptor.idProduct == USB_ID_US144) {
|
|
|
- err = usb_set_interface(us122l->chip.dev, 0, 1);
|
|
|
+ if (us122l->dev->descriptor.idProduct == USB_ID_US144) {
|
|
|
+ err = usb_set_interface(us122l->dev, 0, 1);
|
|
|
if (err) {
|
|
|
snd_printk(KERN_ERR "usb_set_interface error \n");
|
|
|
goto unlock;
|
|
|
}
|
|
|
}
|
|
|
- err = usb_set_interface(us122l->chip.dev, 1, 1);
|
|
|
+ err = usb_set_interface(us122l->dev, 1, 1);
|
|
|
if (err) {
|
|
|
snd_printk(KERN_ERR "usb_set_interface error \n");
|
|
|
goto unlock;
|
|
|
}
|
|
|
|
|
|
- pt_info_set(us122l->chip.dev, 0x11);
|
|
|
- pt_info_set(us122l->chip.dev, 0x10);
|
|
|
+ pt_info_set(us122l->dev, 0x11);
|
|
|
+ pt_info_set(us122l->dev, 0x10);
|
|
|
|
|
|
- err = us122l_set_sample_rate(us122l->chip.dev,
|
|
|
+ err = us122l_set_sample_rate(us122l->dev,
|
|
|
us122l->sk.s->cfg.sample_rate);
|
|
|
if (err < 0) {
|
|
|
snd_printk(KERN_ERR "us122l_set_sample_rate error \n");
|