From mboxrd@z Thu Jan 1 00:00:00 1970 From: Takashi Iwai Subject: Re: [PATCH 2/5] ALSA: snd-usb: switch over to new endpoint streaming logic Date: Wed, 02 Nov 2011 16:58:50 +0100 Message-ID: References: <1320063030-3502-1-git-send-email-zonque@gmail.com> <1320063030-3502-3-git-send-email-zonque@gmail.com> <4EB05D3A.60405@ladisch.de> Mime-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by alsa0.perex.cz (Postfix) with ESMTP id 586AB10392F for ; Wed, 2 Nov 2011 16:58:51 +0100 (CET) In-Reply-To: <4EB05D3A.60405@ladisch.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: alsa-devel-bounces@alsa-project.org Errors-To: alsa-devel-bounces@alsa-project.org To: Clemens Ladisch Cc: linuxaudio@showlabor.de, blablack@gmail.com, alsa-devel@alsa-project.org, gdiffey@gmail.com, Daniel Mack List-Id: alsa-devel@alsa-project.org At Tue, 01 Nov 2011 21:57:30 +0100, Clemens Ladisch wrote: > > On 10/31/2011 01:10 PM, Daniel Mack wrote: > > @@ -276,6 +312,15 @@ static int set_format(struct snd_usb_substream *subs, struct audioformat *fmt) > > if (((is_playback && attr == USB_ENDPOINT_SYNC_ASYNC) || > > (! is_playback && attr == USB_ENDPOINT_SYNC_ADAPTIVE)) && > > altsd->bNumEndpoints >= 2) { > > + switch (subs->stream->chip->usb_id) { > > + case USB_ID(0x0763, 0x2080): /* M-Audio FastTrack Ultra */ > > + case USB_ID(0x0763, 0x2081): > > + ep = 0x81; > > + iface = usb_ifnum_to_if(dev, 2); > > + alts = &iface->altsetting[1]; > > Better check that the device actually has these descriptors. > > > +int snd_usb_substream_capture_trigger(struct snd_pcm_substream *substream, int cmd) > > +{ > > + case SNDRV_PCM_TRIGGER_START: > > + err = start_endpoints(subs); > > The trigger callback should execute very quickly; the initial URB > submission should be handled in the prepare callback. Indeed this is a PITA since long time ago... In general, it's wrong to do it in prepare callback. But we had to do just as a workaround. Clemens, I thought you wanted to implement some framework for such devices? thanks, Takashi