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