Lines Matching refs:usx2y
51 "All pcm substreams of one usx2y have to operate at the same rate & format."
131 #include "usx2y.h"
167 struct usx2ydev *usx2y = urb->context;
168 for (i = 0; i < 10 && usx2y->as04.urb[i] != urb; i++);
177 struct usx2ydev *usx2y = urb->context;
178 struct us428ctls_sharedmem *us428ctls = usx2y->us428ctls_sharedmem;
180 usx2y->in04_int_calls++;
187 // printk("%i:0x%02X ", 8, (int)((unsigned char*)usx2y->in04_buf)[8]); Master volume shows 0 here if fader is at max during boot ?!?
192 memcpy(usx2y->in04_last, usx2y->in04_buf, sizeof(usx2y->in04_last));
197 if (usx2y->in04_last[i] != ((char*)usx2y->in04_buf)[i]) {
200 usx2y->in04_last[i] = ((char*)usx2y->in04_buf)[i];
208 memcpy(us428ctls->ctl_snapshot + n, usx2y->in04_buf, sizeof(us428ctls->ctl_snapshot[0]));
211 wake_up(&usx2y->us428ctls_wait_queue_head);
216 if (usx2y->us04) {
217 if (0 == usx2y->us04->submitted)
219 err = usb_submit_urb(usx2y->us04->urb[usx2y->us04->submitted++], GFP_ATOMIC);
220 } while (!err && usx2y->us04->submitted < usx2y->us04->len);
228 if (0 == usx2y->as04.urb[j]->status) {
230 usb_fill_bulk_urb(usx2y->as04.urb[j], usx2y->dev,
231 usb_sndbulkpipe(usx2y->dev, 0x04), &p4out->val.vol,
233 i_usx2y_out04_int, usx2y);
234 err = usb_submit_urb(usx2y->as04.urb[j], GFP_ATOMIC);
244 urb->dev = usx2y->dev;
251 int usx2y_async_seq04_init(struct usx2ydev *usx2y)
256 usx2y->as04.buffer = kmalloc_array(URBS_ASYNC_SEQ,
258 if (NULL == usx2y->as04.buffer) {
262 if (NULL == (usx2y->as04.urb[i] = usb_alloc_urb(0, GFP_KERNEL))) {
266 usb_fill_bulk_urb( usx2y->as04.urb[i], usx2y->dev,
267 usb_sndbulkpipe(usx2y->dev, 0x04),
268 usx2y->as04.buffer + URB_DATA_LEN_ASYNC_SEQ*i, 0,
269 i_usx2y_out04_int, usx2y
271 err = usb_urb_ep_type_check(usx2y->as04.urb[i]);
278 int usx2y_in04_init(struct usx2ydev *usx2y)
280 if (! (usx2y->in04_urb = usb_alloc_urb(0, GFP_KERNEL)))
283 if (! (usx2y->in04_buf = kmalloc(21, GFP_KERNEL)))
286 init_waitqueue_head(&usx2y->in04_wait_queue);
287 usb_fill_int_urb(usx2y->in04_urb, usx2y->dev, usb_rcvintpipe(usx2y->dev, 0x4),
288 usx2y->in04_buf, 21,
289 i_usx2y_in04_int, usx2y,
291 if (usb_urb_ep_type_check(usx2y->in04_urb))
293 return usb_submit_urb(usx2y->in04_urb, GFP_KERNEL);
344 snd_usx2y_card_used[usx2y(card)->card_index = dev] = 1;
346 usx2y(card)->dev = device;
347 init_waitqueue_head(&usx2y(card)->prepare_wait_queue);
348 mutex_init(&usx2y(card)->pcm_mutex);
349 INIT_LIST_HEAD(&usx2y(card)->midi_list);
357 usx2y(card)->dev->bus->busnum, usx2y(card)->dev->devnum
414 .name = "snd-usb-usx2y",
422 kfree(usx2y(card)->in04_buf);
423 usb_free_urb(usx2y(card)->in04_urb);
424 if (usx2y(card)->us428ctls_sharedmem)
425 free_pages_exact(usx2y(card)->us428ctls_sharedmem,
426 sizeof(*usx2y(card)->us428ctls_sharedmem));
427 if (usx2y(card)->card_index >= 0 && usx2y(card)->card_index < SNDRV_CARDS)
428 snd_usx2y_card_used[usx2y(card)->card_index] = 0;
438 struct usx2ydev *usx2y = usx2y(card);
440 usx2y->chip_status = USX2Y_STAT_CHIP_HUP;
441 usx2y_unlinkseq(&usx2y->as04);
442 usb_kill_urb(usx2y->in04_urb);
445 list_for_each(p, &usx2y->midi_list) {
448 if (usx2y->us428ctls_sharedmem)
449 wake_up(&usx2y->us428ctls_wait_queue_head);