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;

Reply via email to