> >> Now comes the weird part. No, I couldn't get it to work unless I set > >> --with-debug=full on configure line. And I've tested several times, > >> believe me.
Attached diff fixed it here. Please verify. CU
Index: alsa-driver/usb/usx2y/usbusx2y.c =================================================================== RCS file: /cvsroot/alsa/alsa-driver/usb/usx2y/usbusx2y.c,v retrieving revision 1.8 diff -u -r1.8 usbusx2y.c --- alsa-driver/usb/usx2y/usbusx2y.c 17 Feb 2004 15:28:31 -0000 1.8 +++ alsa-driver/usb/usx2y/usbusx2y.c 6 Apr 2004 16:51:22 -0000 @@ -118,7 +118,6 @@ static void snd_usX2Y_usb_disconnect(struct usb_device* usb_device, void* ptr); static void snd_usX2Y_card_private_free(snd_card_t *card); -#ifdef CONFIG_SND_DEBUG /* * pipe 4 is used for switching the lamps, setting samplerate, volumes .... */ @@ -128,14 +127,15 @@ void snd_usX2Y_Out04Int(struct urb* urb) #endif { +#ifdef CONFIG_SND_DEBUG if (urb->status) { int i; usX2Ydev_t* usX2Y = urb->context; for (i = 0; i < 10 && usX2Y->AS04.urb[i] != urb; i++); snd_printd("snd_usX2Y_Out04Int() usX2Y->Seq04=%i urb %i status=%i\n", usX2Y->Seq04, i, urb->status); } -} #endif +} #ifndef OLD_USB void snd_usX2Y_In04Int(struct urb* urb, struct pt_regs *regs) @@ -194,7 +194,7 @@ int j, send = us428ctls->p4outSent + 1; if (send >= N_us428_p4out_BUFS) send = 0; - for (j = 0; j < URBS_AsyncSeq; ++j) + for (j = 0; j < URBS_AsyncSeq && !err; ++j) if (0 == usX2Y->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(usX2Y->AS04.urb[j], usX2Y->chip.dev, @@ -204,7 +204,7 @@ #ifdef OLD_USB usX2Y->AS04.urb[j]->transfer_flags = USB_QUEUE_BULK; #endif - usb_submit_urb(usX2Y->AS04.urb[j], GFP_ATOMIC); + err = usb_submit_urb(usX2Y->AS04.urb[j], GFP_ATOMIC); us428ctls->p4outSent = send; break; } Index: alsa-driver/usb/usx2y/usbusx2y.h =================================================================== RCS file: /cvsroot/alsa/alsa-driver/usb/usx2y/usbusx2y.h,v retrieving revision 1.3 diff -u -r1.3 usbusx2y.h --- alsa-driver/usb/usx2y/usbusx2y.h 19 Jan 2004 18:43:28 -0000 1.3 +++ alsa-driver/usb/usx2y/usbusx2y.h 6 Apr 2004 16:51:22 -0000 @@ -58,10 +58,6 @@ void snd_usX2Y_In04Int(struct urb* urb); #endif -#ifndef CONFIG_SND_DEBUG -#define snd_usX2Y_Out04Int 0 -#endif - #define NAME_ALLCAPS "US-X2Y" #endif Index: alsa-driver/usb/usx2y/usbusx2yaudio.c =================================================================== RCS file: /cvsroot/alsa/alsa-driver/usb/usx2y/usbusx2yaudio.c,v retrieving revision 1.9 diff -u -r1.9 usbusx2yaudio.c --- alsa-driver/usb/usx2y/usbusx2yaudio.c 30 Mar 2004 08:27:16 -0000 1.9 +++ alsa-driver/usb/usx2y/usbusx2yaudio.c 6 Apr 2004 16:51:25 -0000 @@ -1245,7 +1245,7 @@ snd_dma_continuous_data(GFP_KERNEL), usX2Y_capt_substream->endpoints * 64*1024, usX2Y_capt_substream->endpoints * 128*1024)) || - (usX2Y(card)->chip.dev->descriptor.idProduct == USB_ID_US428 && + (usX2Y(card)->chip.dev->descriptor.idProduct != USB_ID_US122 && 0 > (err = usX2Y_rate_set(usX2Y_stream, 44100)))) { // Lets us428 recognize output-volume settings, disturbs us122. snd_usX2Y_audio_stream_free(usX2Y_stream); return err;