Hi,

this fixes an us428 error that crept in during us122 merge.
Please commit with comment:
- Start devices audio-engine on driver startup.
- Prepare for us224 - Tests.

Thanks,
Karsten
Index: alsa-driver/usb/usx2y/usbusx2y.c
===================================================================
RCS file: /cvsroot/alsa/alsa-driver/usb/usx2y/usbusx2y.c,v
retrieving revision 1.2
diff -u -r1.2 usbusx2y.c
--- alsa-driver/usb/usx2y/usbusx2y.c	26 Nov 2003 10:01:28 -0000	1.2
+++ alsa-driver/usb/usx2y/usbusx2y.c	27 Nov 2003 14:32:23 -0000
@@ -1,6 +1,11 @@
 /*
  * usbus428.c - ALSA USB US-428 Driver
  *
+2003-11-27 Karsten Wiese, Martin Langer
+	Version 0.4:
+	us122 support.
+	us224 could be tested by uncommenting the sections containing USB_ID_US224
+
 2003-11-03 Karsten Wiese
 	Version 0.3:
 	24Bit support. 
@@ -229,6 +234,11 @@
 		.idVendor =	0x1604,
 		.idProduct =	USB_ID_US122 
 	},
+/* 	{ FIXME: uncomment  to test us224 support*/
+/* 		.match_flags =	USB_DEVICE_ID_MATCH_DEVICE, */
+/* 		.idVendor =	0x1604, */
+/* 		.idProduct =	USB_ID_US224  */
+/* 	}, */
 	{ /* terminator */ }
 };
 
@@ -268,7 +278,7 @@
 	int		err;
 	snd_card_t*	card;
 	if (device->descriptor.idVendor != 0x1604 ||
-	    (device->descriptor.idProduct != USB_ID_US122 && device->descriptor.idProduct != USB_ID_US428) ||
+	    (device->descriptor.idProduct != USB_ID_US122 && /* device->descriptor.idProduct != USB_ID_US224 && */ device->descriptor.idProduct != USB_ID_US428) ||
 	    !(card = snd_usX2Y_create_card(device)))
 		return 0;
 	if ((err = snd_usX2Y_hwdep_new(card, device)) < 0  ||
Index: alsa-driver/usb/usx2y/usbusx2yaudio.c
===================================================================
RCS file: /cvsroot/alsa/alsa-driver/usb/usx2y/usbusx2yaudio.c,v
retrieving revision 1.1
diff -u -r1.1 usbusx2yaudio.c
--- alsa-driver/usb/usx2y/usbusx2yaudio.c	25 Nov 2003 11:21:49 -0000	1.1
+++ alsa-driver/usb/usx2y/usbusx2yaudio.c	27 Nov 2003 14:32:25 -0000
@@ -1225,7 +1225,8 @@
 	sprintf(pcm->name, NAME_ALLCAPS" Audio #%d", usX2Y(card)->chip.pcm_devs);
 
 	if (0 > (err = snd_pcm_lib_preallocate_pages(pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream,  64*1024, 128*1024, GFP_ATOMIC))
-	    || 0 > (err = snd_pcm_lib_preallocate_pages(pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream ,  usX2Y_capt_substream->endpoints * 64*1024, usX2Y_capt_substream->endpoints * 128*1024, GFP_ATOMIC))) {
+	    || 0 > (err = snd_pcm_lib_preallocate_pages(pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream ,  usX2Y_capt_substream->endpoints * 64*1024, usX2Y_capt_substream->endpoints * 128*1024, GFP_ATOMIC))
+	    || 0 > (err = usX2Y_rate_set(usX2Y_stream, 44100))) {  // needed to make us428 recognize output-volume settings for direct-monitoring and master-pcm. shouldn't disturb other usx2y.
 		snd_usX2Y_audio_stream_free(usX2Y_stream);
 		return err;
 	}

Reply via email to