Lines Matching refs:us122l
18 #include "us122l.h"
97 struct us122l *us122l = area->vm_private_data;
99 atomic_inc(&us122l->mmap_count);
100 snd_printdd(KERN_DEBUG "%i\n", atomic_read(&us122l->mmap_count));
108 struct us122l *us122l = vmf->vma->vm_private_data;
111 mutex_lock(&us122l->mutex);
112 s = us122l->sk.s;
124 vaddr = us122l->sk.write_page + offset;
129 mutex_unlock(&us122l->mutex);
135 mutex_unlock(&us122l->mutex);
141 struct us122l *us122l = area->vm_private_data;
143 atomic_dec(&us122l->mmap_count);
144 snd_printdd(KERN_DEBUG "%i\n", atomic_read(&us122l->mmap_count));
155 struct us122l *us122l = hw->private_data;
162 if (!us122l->first)
163 us122l->first = file;
165 if (us122l->is_us144) {
166 iface = usb_ifnum_to_if(us122l->dev, 0);
169 iface = usb_ifnum_to_if(us122l->dev, 1);
176 struct us122l *us122l = hw->private_data;
181 if (us122l->is_us144) {
182 iface = usb_ifnum_to_if(us122l->dev, 0);
185 iface = usb_ifnum_to_if(us122l->dev, 1);
187 if (us122l->first == file)
188 us122l->first = NULL;
189 mutex_lock(&us122l->mutex);
190 if (us122l->master == file)
191 us122l->master = us122l->slave;
193 us122l->slave = NULL;
194 mutex_unlock(&us122l->mutex);
202 struct us122l *us122l = hw->private_data;
209 mutex_lock(&us122l->mutex);
210 s = us122l->sk.s;
230 area->vm_private_data = us122l;
231 atomic_inc(&us122l->mmap_count);
233 mutex_unlock(&us122l->mutex);
240 struct us122l *us122l = hw->private_data;
244 poll_wait(file, &us122l->sk.sleep, wait);
247 if (mutex_trylock(&us122l->mutex)) {
248 struct usb_stream *s = us122l->sk.s;
251 if (us122l->first == file)
254 polled = &us122l->second_periods_polled;
262 mutex_unlock(&us122l->mutex);
267 static void us122l_stop(struct us122l *us122l)
271 list_for_each(p, &us122l->midi_list)
274 usb_stream_stop(&us122l->sk);
275 usb_stream_free(&us122l->sk);
297 static bool us122l_start(struct us122l *us122l,
305 if (us122l->dev->speed == USB_SPEED_HIGH) {
322 if (!usb_stream_new(&us122l->sk, us122l->dev, 1, 2,
326 err = us122l_set_sample_rate(us122l->dev, rate);
328 us122l_stop(us122l);
332 err = usb_stream_start(&us122l->sk);
334 us122l_stop(us122l);
338 list_for_each(p, &us122l->midi_list)
349 struct us122l *us122l = hw->private_data;
364 high_speed = us122l->dev->speed == USB_SPEED_HIGH;
390 mutex_lock(&us122l->mutex);
391 s = us122l->sk.s;
392 if (!us122l->master) {
393 us122l->master = file;
394 } else if (us122l->master != file) {
399 us122l->slave = file;
403 us122l_stop(us122l);
404 if (!us122l_start(us122l, cfg.sample_rate, cfg.period_frames))
410 mutex_unlock(&us122l->mutex);
411 wake_up_all(&us122l->sk.sleep);
443 struct us122l *us122l = US122L(card);
445 if (us122l->is_us144) {
446 err = usb_set_interface(us122l->dev, 0, 1);
452 err = usb_set_interface(us122l->dev, 1, 1);
458 pt_info_set(us122l->dev, 0x11);
459 pt_info_set(us122l->dev, 0x10);
461 if (!us122l_start(us122l, 44100, 256))
464 if (us122l->is_us144)
477 list_for_each(p, &us122l->midi_list)
485 us122l_stop(us122l);
491 struct us122l *us122l = US122L(card);
492 int index = us122l->card_index;
513 sizeof(struct us122l), &card);
597 struct us122l *us122l;
606 us122l = US122L(card);
607 mutex_lock(&us122l->mutex);
608 us122l_stop(us122l);
609 mutex_unlock(&us122l->mutex);
612 list_for_each(p, &us122l->midi_list) {
616 usb_put_intf(usb_ifnum_to_if(us122l->dev, 0));
617 usb_put_intf(usb_ifnum_to_if(us122l->dev, 1));
618 usb_put_dev(us122l->dev);
620 while (atomic_read(&us122l->mmap_count))
629 struct us122l *us122l;
637 us122l = US122L(card);
638 if (!us122l)
641 list_for_each(p, &us122l->midi_list)
644 mutex_lock(&us122l->mutex);
645 usb_stream_stop(&us122l->sk);
646 mutex_unlock(&us122l->mutex);
654 struct us122l *us122l;
662 us122l = US122L(card);
663 if (!us122l)
666 mutex_lock(&us122l->mutex);
668 if (us122l->is_us144) {
669 err = usb_set_interface(us122l->dev, 0, 1);
675 err = usb_set_interface(us122l->dev, 1, 1);
681 pt_info_set(us122l->dev, 0x11);
682 pt_info_set(us122l->dev, 0x10);
684 err = us122l_set_sample_rate(us122l->dev,
685 us122l->sk.s->cfg.sample_rate);
690 err = usb_stream_start(&us122l->sk);
694 list_for_each(p, &us122l->midi_list)
697 mutex_unlock(&us122l->mutex);
730 .name = "snd-usb-us122l",