Lines Matching refs:usx2y

51 	"All pcm substreams of one usx2y have to operate at the same rate & format."
130 #include "usx2y.h"
162 struct usx2ydev *usx2y = urb->context;
164 for (i = 0; i < 10 && usx2y->as04.urb[i] != urb; i++)
174 struct usx2ydev *usx2y = urb->context;
175 struct us428ctls_sharedmem *us428ctls = usx2y->us428ctls_sharedmem;
179 usx2y->in04_int_calls++;
190 memcpy(usx2y->in04_last, usx2y->in04_buf, sizeof(usx2y->in04_last));
194 if (usx2y->in04_last[i] != ((char *)usx2y->in04_buf)[i]) {
197 usx2y->in04_last[i] = ((char *)usx2y->in04_buf)[i];
205 memcpy(us428ctls->ctl_snapshot + n, usx2y->in04_buf, sizeof(us428ctls->ctl_snapshot[0]));
208 wake_up(&usx2y->us428ctls_wait_queue_head);
212 if (usx2y->us04) {
213 if (!usx2y->us04->submitted) {
215 err = usb_submit_urb(usx2y->us04->urb[usx2y->us04->submitted++], GFP_ATOMIC);
216 } while (!err && usx2y->us04->submitted < usx2y->us04->len);
225 if (!usx2y->as04.urb[j]->status) {
227 usb_fill_bulk_urb(usx2y->as04.urb[j], usx2y->dev,
228 usb_sndbulkpipe(usx2y->dev, 0x04), &p4out->val.vol,
230 i_usx2y_out04_int, usx2y);
231 err = usb_submit_urb(usx2y->as04.urb[j], GFP_ATOMIC);
243 urb->dev = usx2y->dev;
250 int usx2y_async_seq04_init(struct usx2ydev *usx2y)
254 if (WARN_ON(usx2y->as04.buffer))
257 usx2y->as04.buffer = kmalloc_array(URBS_ASYNC_SEQ,
259 if (!usx2y->as04.buffer) {
263 usx2y->as04.urb[i] = usb_alloc_urb(0, GFP_KERNEL);
264 if (!usx2y->as04.urb[i]) {
268 usb_fill_bulk_urb(usx2y->as04.urb[i], usx2y->dev,
269 usb_sndbulkpipe(usx2y->dev, 0x04),
270 usx2y->as04.buffer + URB_DATA_LEN_ASYNC_SEQ * i, 0,
271 i_usx2y_out04_int, usx2y);
272 err = usb_urb_ep_type_check(usx2y->as04.urb[i]);
278 usx2y_unlinkseq(&usx2y->as04);
282 int usx2y_in04_init(struct usx2ydev *usx2y)
286 if (WARN_ON(usx2y->in04_urb))
289 usx2y->in04_urb = usb_alloc_urb(0, GFP_KERNEL);
290 if (!usx2y->in04_urb) {
295 usx2y->in04_buf = kmalloc(21, GFP_KERNEL);
296 if (!usx2y->in04_buf) {
301 init_waitqueue_head(&usx2y->in04_wait_queue);
302 usb_fill_int_urb(usx2y->in04_urb, usx2y->dev, usb_rcvintpipe(usx2y->dev, 0x4),
303 usx2y->in04_buf, 21,
304 i_usx2y_in04_int, usx2y,
306 if (usb_urb_ep_type_check(usx2y->in04_urb)) {
310 return usb_submit_urb(usx2y->in04_urb, GFP_KERNEL);
313 kfree(usx2y->in04_buf);
314 usb_free_urb(usx2y->in04_urb);
315 usx2y->in04_buf = NULL;
316 usx2y->in04_urb = NULL;
372 snd_usx2y_card_used[usx2y(card)->card_index = dev] = 1;
374 usx2y(card)->dev = device;
375 init_waitqueue_head(&usx2y(card)->prepare_wait_queue);
376 init_waitqueue_head(&usx2y(card)->us428ctls_wait_queue_head);
377 mutex_init(&usx2y(card)->pcm_mutex);
378 INIT_LIST_HEAD(&usx2y(card)->midi_list);
386 usx2y(card)->dev->bus->busnum, usx2y(card)->dev->devnum);
393 struct usx2ydev *usx2y = usx2y(card);
395 kfree(usx2y->in04_buf);
396 usb_free_urb(usx2y->in04_urb);
397 if (usx2y->us428ctls_sharedmem)
398 free_pages_exact(usx2y->us428ctls_sharedmem,
400 if (usx2y->card_index >= 0 && usx2y->card_index < SNDRV_CARDS)
401 snd_usx2y_card_used[usx2y->card_index] = 0;
407 struct usx2ydev *usx2y;
413 usx2y = usx2y(card);
414 usx2y->chip_status = USX2Y_STAT_CHIP_HUP;
415 usx2y_unlinkseq(&usx2y->as04);
416 usb_kill_urb(usx2y->in04_urb);
420 list_for_each(p, &usx2y->midi_list) {
423 if (usx2y->us428ctls_sharedmem)
424 wake_up(&usx2y->us428ctls_wait_queue_head);
460 .name = "snd-usb-usx2y",