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++;
186 // printk("%i:0x%02X ", 8, (int)((unsigned char*)usx2y->in04_buf)[8]); Master volume shows 0 here if fader is at max during boot ?!?
191 memcpy(usx2y->in04_last, usx2y->in04_buf, sizeof(usx2y->in04_last));
195 if (usx2y->in04_last[i] != ((char *)usx2y->in04_buf)[i]) {
198 usx2y->in04_last[i] = ((char *)usx2y->in04_buf)[i];
206 memcpy(us428ctls->ctl_snapshot + n, usx2y->in04_buf, sizeof(us428ctls->ctl_snapshot[0]));
209 wake_up(&usx2y->us428ctls_wait_queue_head);
213 if (usx2y->us04) {
214 if (!usx2y->us04->submitted) {
216 err = usb_submit_urb(usx2y->us04->urb[usx2y->us04->submitted++], GFP_ATOMIC);
217 } while (!err && usx2y->us04->submitted < usx2y->us04->len);
226 if (!usx2y->as04.urb[j]->status) {
228 usb_fill_bulk_urb(usx2y->as04.urb[j], usx2y->dev,
229 usb_sndbulkpipe(usx2y->dev, 0x04), &p4out->val.vol,
231 i_usx2y_out04_int, usx2y);
232 err = usb_submit_urb(usx2y->as04.urb[j], GFP_ATOMIC);
244 urb->dev = usx2y->dev;
251 int usx2y_async_seq04_init(struct usx2ydev *usx2y)
255 if (WARN_ON(usx2y->as04.buffer))
258 usx2y->as04.buffer = kmalloc_array(URBS_ASYNC_SEQ,
260 if (!usx2y->as04.buffer) {
264 usx2y->as04.urb[i] = usb_alloc_urb(0, GFP_KERNEL);
265 if (!usx2y->as04.urb[i]) {
269 usb_fill_bulk_urb(usx2y->as04.urb[i], usx2y->dev,
270 usb_sndbulkpipe(usx2y->dev, 0x04),
271 usx2y->as04.buffer + URB_DATA_LEN_ASYNC_SEQ * i, 0,
272 i_usx2y_out04_int, usx2y);
273 err = usb_urb_ep_type_check(usx2y->as04.urb[i]);
279 usx2y_unlinkseq(&usx2y->as04);
283 int usx2y_in04_init(struct usx2ydev *usx2y)
287 if (WARN_ON(usx2y->in04_urb))
290 usx2y->in04_urb = usb_alloc_urb(0, GFP_KERNEL);
291 if (!usx2y->in04_urb) {
296 usx2y->in04_buf = kmalloc(21, GFP_KERNEL);
297 if (!usx2y->in04_buf) {
302 init_waitqueue_head(&usx2y->in04_wait_queue);
303 usb_fill_int_urb(usx2y->in04_urb, usx2y->dev, usb_rcvintpipe(usx2y->dev, 0x4),
304 usx2y->in04_buf, 21,
305 i_usx2y_in04_int, usx2y,
307 if (usb_urb_ep_type_check(usx2y->in04_urb)) {
311 return usb_submit_urb(usx2y->in04_urb, GFP_KERNEL);
314 kfree(usx2y->in04_buf);
315 usb_free_urb(usx2y->in04_urb);
316 usx2y->in04_buf = NULL;
317 usx2y->in04_urb = NULL;
373 snd_usx2y_card_used[usx2y(card)->card_index = dev] = 1;
375 usx2y(card)->dev = device;
376 init_waitqueue_head(&usx2y(card)->prepare_wait_queue);
377 init_waitqueue_head(&usx2y(card)->us428ctls_wait_queue_head);
378 mutex_init(&usx2y(card)->pcm_mutex);
379 INIT_LIST_HEAD(&usx2y(card)->midi_list);
387 usx2y(card)->dev->bus->busnum, usx2y(card)->dev->devnum);
394 struct usx2ydev *usx2y = usx2y(card);
396 kfree(usx2y->in04_buf);
397 usb_free_urb(usx2y->in04_urb);
398 if (usx2y->us428ctls_sharedmem)
399 free_pages_exact(usx2y->us428ctls_sharedmem,
401 if (usx2y->card_index >= 0 && usx2y->card_index < SNDRV_CARDS)
402 snd_usx2y_card_used[usx2y->card_index] = 0;
408 struct usx2ydev *usx2y;
414 usx2y = usx2y(card);
415 usx2y->chip_status = USX2Y_STAT_CHIP_HUP;
416 usx2y_unlinkseq(&usx2y->as04);
417 usb_kill_urb(usx2y->in04_urb);
421 list_for_each(p, &usx2y->midi_list) {
424 if (usx2y->us428ctls_sharedmem)
425 wake_up(&usx2y->us428ctls_wait_queue_head);
461 .name = "snd-usb-usx2y",