Hi Takashi,
this makes it work again!
ciao,
Karsten
Index: alsa-driver/usb/us428/usbus428.c
===================================================================
RCS file: /cvsroot/alsa/alsa-driver/usb/us428/usbus428.c,v
retrieving revision 1.3
diff -u -r1.3 usbus428.c
--- alsa-driver/usb/us428/usbus428.c 24 Sep 2003 16:45:10 -0000 1.3
+++ alsa-driver/usb/us428/usbus428.c 25 Sep 2003 09:29:07 -0000
@@ -169,15 +169,12 @@
int j, send = us428ctls->p4outSent + 1;
if (send >= N_us428_p4out_BUFS)
send = 0;
- while (us428ctls->p4out[send].type == eLT_Light && send != us428ctls->p4outLast)
- if (++send >= N_us428_p4out_BUFS)
- send = 0;
for (j = 0; j < URBS_AsyncSeq; ++j)
if (0 == us428->AS04.urb[j]->status) {
us428_p4out_t *p4out = us428ctls->p4out + send; // FIXME if more then 1 p4out is new, 1 gets lost.
usb_fill_bulk_urb(us428->AS04.urb[j], us428->chip.dev,
usb_sndbulkpipe(us428->chip.dev, 0x04), &p4out->vol,
- p4out->type == eLT_Light ? sizeof(us428_lights_t) : sizeof(usX2Y_volume_t),
+ p4out->type == eLT_Light ? sizeof(us428_lights_t) : 5,
snd_us428_Out04Int, us428);
#ifdef OLD_USB
us428->AS04.urb[j]->transfer_flags = USB_QUEUE_BULK;
@@ -225,7 +222,7 @@
for (dev = 0; dev < SNDRV_CARDS; ++dev)
if (enable[dev] && !snd_us428_card_used[dev])
- return NULL;
+ break;
if (dev >= SNDRV_CARDS)
return NULL;