usbusx2y.c (3d7a96f5a485b7d06c2379f343d7312af89ec9e2) usbusx2y.c (025dfdafe77f20b3890981a394774baab7b9c827)
1/*
2 * usbusy2y.c - ALSA USB US-428 Driver
3 *
42005-04-14 Karsten Wiese
5 Version 0.8.7.2:
6 Call snd_card_free() instead of snd_card_free_in_thread() to prevent oops with dead keyboard symptom.
7 Tested ok with kernel 2.6.12-rc2.
8

--- 224 unchanged lines hidden (view full) ---

233 } else
234 if (us428ctls && us428ctls->p4outLast >= 0 && us428ctls->p4outLast < N_us428_p4out_BUFS) {
235 if (us428ctls->p4outLast != us428ctls->p4outSent) {
236 int j, send = us428ctls->p4outSent + 1;
237 if (send >= N_us428_p4out_BUFS)
238 send = 0;
239 for (j = 0; j < URBS_AsyncSeq && !err; ++j)
240 if (0 == usX2Y->AS04.urb[j]->status) {
1/*
2 * usbusy2y.c - ALSA USB US-428 Driver
3 *
42005-04-14 Karsten Wiese
5 Version 0.8.7.2:
6 Call snd_card_free() instead of snd_card_free_in_thread() to prevent oops with dead keyboard symptom.
7 Tested ok with kernel 2.6.12-rc2.
8

--- 224 unchanged lines hidden (view full) ---

233 } else
234 if (us428ctls && us428ctls->p4outLast >= 0 && us428ctls->p4outLast < N_us428_p4out_BUFS) {
235 if (us428ctls->p4outLast != us428ctls->p4outSent) {
236 int j, send = us428ctls->p4outSent + 1;
237 if (send >= N_us428_p4out_BUFS)
238 send = 0;
239 for (j = 0; j < URBS_AsyncSeq && !err; ++j)
240 if (0 == usX2Y->AS04.urb[j]->status) {
241 struct us428_p4out *p4out = us428ctls->p4out + send; // FIXME if more then 1 p4out is new, 1 gets lost.
241 struct us428_p4out *p4out = us428ctls->p4out + send; // FIXME if more than 1 p4out is new, 1 gets lost.
242 usb_fill_bulk_urb(usX2Y->AS04.urb[j], usX2Y->chip.dev,
243 usb_sndbulkpipe(usX2Y->chip.dev, 0x04), &p4out->val.vol,
244 p4out->type == eLT_Light ? sizeof(struct us428_lights) : 5,
245 i_usX2Y_Out04Int, usX2Y);
246 err = usb_submit_urb(usX2Y->AS04.urb[j], GFP_ATOMIC);
247 us428ctls->p4outSent = send;
248 break;
249 }

--- 211 unchanged lines hidden ---
242 usb_fill_bulk_urb(usX2Y->AS04.urb[j], usX2Y->chip.dev,
243 usb_sndbulkpipe(usX2Y->chip.dev, 0x04), &p4out->val.vol,
244 p4out->type == eLT_Light ? sizeof(struct us428_lights) : 5,
245 i_usX2Y_Out04Int, usX2Y);
246 err = usb_submit_urb(usX2Y->AS04.urb[j], GFP_ATOMIC);
247 us428ctls->p4outSent = send;
248 break;
249 }

--- 211 unchanged lines hidden ---