Update of /cvsroot/alsa/alsa-driver/usb/usx2y
In directory sc8-pr-cvs1:/tmp/cvs-serv13868/usx2y

Modified Files:
        usbusx2y.c usbusx2yaudio.c 
Log Message:
Karsten Wiese <[EMAIL PROTECTED]>:
- Start devices audio-engine on driver startup.
- Prepare for us224 - Tests.

additional fixes by tiwai:
- use non-atomic prepare callback.
- fixed wrong use of GFP_ flags



Index: usbusx2y.c
===================================================================
RCS file: /cvsroot/alsa/alsa-driver/usb/usx2y/usbusx2y.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- usbusx2y.c  26 Nov 2003 10:01:28 -0000      1.2
+++ usbusx2y.c  27 Nov 2003 14:57:51 -0000      1.3
@@ -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. 
@@ -173,7 +178,7 @@
        if (usX2Y->US04) {
                if (0 == usX2Y->US04->submitted)
                        do
-                               err = 
usb_submit_urb(usX2Y->US04->urb[usX2Y->US04->submitted++], GFP_KERNEL);
+                               err = 
usb_submit_urb(usX2Y->US04->urb[usX2Y->US04->submitted++], GFP_ATOMIC);
                        while (!err && usX2Y->US04->submitted < usX2Y->US04->len);
        } else
                if (us428ctls && us428ctls->p4outLast >= 0 && us428ctls->p4outLast < 
N_us428_p4out_BUFS) {
@@ -191,7 +196,7 @@
 #ifdef OLD_USB
                                                usX2Y->AS04.urb[j]->transfer_flags = 
USB_QUEUE_BULK;
 #endif
-                                               usb_submit_urb(usX2Y->AS04.urb[j], 
GFP_KERNEL);
+                                               usb_submit_urb(usX2Y->AS04.urb[j], 
GFP_ATOMIC);
                                                us428ctls->p4outSent = send;
                                                break;
                                        }
@@ -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: usbusx2yaudio.c
===================================================================
RCS file: /cvsroot/alsa/alsa-driver/usb/usx2y/usbusx2yaudio.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- usbusx2yaudio.c     25 Nov 2003 11:21:49 -0000      1.1
+++ usbusx2yaudio.c     27 Nov 2003 14:57:51 -0000      1.2
@@ -474,7 +474,7 @@
                                subs->dataurb[ep][i]->transfer_flags = 0;
                                subs->dataurb[ep][i]->start_frame = 
subs->dataurb[0][i]->start_frame;
                        }
-                       if ((err = usb_submit_urb(subs->dataurb[ep][i], GFP_KERNEL)) < 
0) {
+                       if ((err = usb_submit_urb(subs->dataurb[ep][i], GFP_ATOMIC)) < 
0) {
                                snd_printk (KERN_ERR "cannot submit datapipe for urb 
%d %d, err = %d\n", ep, i, err);
                                return -EPIPE;
                        }
@@ -1220,12 +1220,13 @@
 
        pcm->private_data = usX2Y_stream;
        pcm->private_free = snd_usX2Y_audio_pcm_free;
-       pcm->info_flags = 0;
+       pcm->info_flags = SNDRV_PCM_INFO_NONATOMIC_OPS;
 
        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))) {
+       if (0 > (err = 
snd_pcm_lib_preallocate_pages(pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream,  
64*1024, 128*1024, GFP_KERNEL))
+           || 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_KERNEL))
+           || 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;
        }



-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?  SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
_______________________________________________
Alsa-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-cvslog

Reply via email to