Lines Matching refs:usx2y
162 struct usx2ydev *usx2y = urb->context; in i_usx2y_out04_int() local
164 for (i = 0; i < 10 && usx2y->as04.urb[i] != urb; i++) in i_usx2y_out04_int()
174 struct usx2ydev *usx2y = urb->context; in i_usx2y_in04_int() local
175 struct us428ctls_sharedmem *us428ctls = usx2y->us428ctls_sharedmem; in i_usx2y_in04_int()
179 usx2y->in04_int_calls++; in i_usx2y_in04_int()
191 memcpy(usx2y->in04_last, usx2y->in04_buf, sizeof(usx2y->in04_last)); in i_usx2y_in04_int()
195 if (usx2y->in04_last[i] != ((char *)usx2y->in04_buf)[i]) { in i_usx2y_in04_int()
198 usx2y->in04_last[i] = ((char *)usx2y->in04_buf)[i]; in i_usx2y_in04_int()
206 memcpy(us428ctls->ctl_snapshot + n, usx2y->in04_buf, sizeof(us428ctls->ctl_snapshot[0])); in i_usx2y_in04_int()
209 wake_up(&usx2y->us428ctls_wait_queue_head); in i_usx2y_in04_int()
213 if (usx2y->us04) { in i_usx2y_in04_int()
214 if (!usx2y->us04->submitted) { in i_usx2y_in04_int()
216 err = usb_submit_urb(usx2y->us04->urb[usx2y->us04->submitted++], GFP_ATOMIC); in i_usx2y_in04_int()
217 } while (!err && usx2y->us04->submitted < usx2y->us04->len); in i_usx2y_in04_int()
226 if (!usx2y->as04.urb[j]->status) { in i_usx2y_in04_int()
228 usb_fill_bulk_urb(usx2y->as04.urb[j], usx2y->dev, in i_usx2y_in04_int()
229 usb_sndbulkpipe(usx2y->dev, 0x04), &p4out->val.vol, in i_usx2y_in04_int()
231 i_usx2y_out04_int, usx2y); in i_usx2y_in04_int()
232 err = usb_submit_urb(usx2y->as04.urb[j], GFP_ATOMIC); in i_usx2y_in04_int()
244 urb->dev = usx2y->dev; in i_usx2y_in04_int()
251 int usx2y_async_seq04_init(struct usx2ydev *usx2y) in usx2y_async_seq04_init() argument
255 if (WARN_ON(usx2y->as04.buffer)) in usx2y_async_seq04_init()
258 usx2y->as04.buffer = kmalloc_array(URBS_ASYNC_SEQ, in usx2y_async_seq04_init()
260 if (!usx2y->as04.buffer) { in usx2y_async_seq04_init()
264 usx2y->as04.urb[i] = usb_alloc_urb(0, GFP_KERNEL); in usx2y_async_seq04_init()
265 if (!usx2y->as04.urb[i]) { in usx2y_async_seq04_init()
269 usb_fill_bulk_urb(usx2y->as04.urb[i], usx2y->dev, in usx2y_async_seq04_init()
270 usb_sndbulkpipe(usx2y->dev, 0x04), in usx2y_async_seq04_init()
271 usx2y->as04.buffer + URB_DATA_LEN_ASYNC_SEQ * i, 0, in usx2y_async_seq04_init()
272 i_usx2y_out04_int, usx2y); in usx2y_async_seq04_init()
273 err = usb_urb_ep_type_check(usx2y->as04.urb[i]); in usx2y_async_seq04_init()
279 usx2y_unlinkseq(&usx2y->as04); in usx2y_async_seq04_init()
283 int usx2y_in04_init(struct usx2ydev *usx2y) in usx2y_in04_init() argument
287 if (WARN_ON(usx2y->in04_urb)) in usx2y_in04_init()
290 usx2y->in04_urb = usb_alloc_urb(0, GFP_KERNEL); in usx2y_in04_init()
291 if (!usx2y->in04_urb) { in usx2y_in04_init()
296 usx2y->in04_buf = kmalloc(21, GFP_KERNEL); in usx2y_in04_init()
297 if (!usx2y->in04_buf) { in usx2y_in04_init()
302 init_waitqueue_head(&usx2y->in04_wait_queue); in usx2y_in04_init()
303 usb_fill_int_urb(usx2y->in04_urb, usx2y->dev, usb_rcvintpipe(usx2y->dev, 0x4), in usx2y_in04_init()
304 usx2y->in04_buf, 21, in usx2y_in04_init()
305 i_usx2y_in04_int, usx2y, in usx2y_in04_init()
307 if (usb_urb_ep_type_check(usx2y->in04_urb)) { in usx2y_in04_init()
311 return usb_submit_urb(usx2y->in04_urb, GFP_KERNEL); in usx2y_in04_init()
314 kfree(usx2y->in04_buf); in usx2y_in04_init()
315 usb_free_urb(usx2y->in04_urb); in usx2y_in04_init()
316 usx2y->in04_buf = NULL; in usx2y_in04_init()
317 usx2y->in04_urb = NULL; in usx2y_in04_init()
373 snd_usx2y_card_used[usx2y(card)->card_index = dev] = 1; in usx2y_create_card()
375 usx2y(card)->dev = device; in usx2y_create_card()
376 init_waitqueue_head(&usx2y(card)->prepare_wait_queue); in usx2y_create_card()
377 init_waitqueue_head(&usx2y(card)->us428ctls_wait_queue_head); in usx2y_create_card()
378 mutex_init(&usx2y(card)->pcm_mutex); in usx2y_create_card()
379 INIT_LIST_HEAD(&usx2y(card)->midi_list); in usx2y_create_card()
387 usx2y(card)->dev->bus->busnum, usx2y(card)->dev->devnum); in usx2y_create_card()
394 struct usx2ydev *usx2y = usx2y(card); in snd_usx2y_card_private_free() local
396 kfree(usx2y->in04_buf); in snd_usx2y_card_private_free()
397 usb_free_urb(usx2y->in04_urb); in snd_usx2y_card_private_free()
398 if (usx2y->us428ctls_sharedmem) in snd_usx2y_card_private_free()
399 free_pages_exact(usx2y->us428ctls_sharedmem, in snd_usx2y_card_private_free()
401 if (usx2y->card_index >= 0 && usx2y->card_index < SNDRV_CARDS) in snd_usx2y_card_private_free()
402 snd_usx2y_card_used[usx2y->card_index] = 0; in snd_usx2y_card_private_free()
408 struct usx2ydev *usx2y; in snd_usx2y_disconnect() local
414 usx2y = usx2y(card); in snd_usx2y_disconnect()
415 usx2y->chip_status = USX2Y_STAT_CHIP_HUP; in snd_usx2y_disconnect()
416 usx2y_unlinkseq(&usx2y->as04); in snd_usx2y_disconnect()
417 usb_kill_urb(usx2y->in04_urb); in snd_usx2y_disconnect()
421 list_for_each(p, &usx2y->midi_list) { in snd_usx2y_disconnect()
424 if (usx2y->us428ctls_sharedmem) in snd_usx2y_disconnect()
425 wake_up(&usx2y->us428ctls_wait_queue_head); in snd_usx2y_disconnect()