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