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 --- |