All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Mack <zonque@gmail.com>
To: Jeffrey Barish <jeff_barish@earthlink.net>
Cc: alsa-user@lists.sourceforge.net,
	alsa-devel <alsa-devel@alsa-project.org>
Subject: Re: [Alsa-user] Ticks when playing to USB DAC at high sample rates
Date: Thu, 22 Nov 2012 20:29:05 +0100	[thread overview]
Message-ID: <50AE7D01.4070101@gmail.com> (raw)
In-Reply-To: <1427406.0H8zTTgyKy@quintet>

Hi Jeffrey,

sorry for the late reply.

On 08.11.2012 19:54, Jeffrey Barish wrote:
> On Wed 07 November 2012 10:01:14 Daniel Mack wrote:
>> On 07.11.2012 00:54, Jeffrey Barish wrote:
>>> I guess that snd_usb_pcm_prepare is called by the core usb system to
>>> prepare the snd driver.  Anyway, snd_usb_pcm_prepare calls
>>> configure_endpoint with a substream.  Then configure_endpoint calls
>>> snd_usb_endpoint_set_params with the data endpoint that corresponds to
>>> the substream.  snd_usb_endpoint_set_params calls data_ep_set_params with
>>> the data ep and data_ep_set_params sets nurbs to 2 for the data endpoint.
>>>
>>> snd_usb_endpoint_set_params has code to call sync_ep_set_params when the
>>> endpoint is type sync.  sync_ep_set_params sets nurbs to 4 (why?). 
>>> However, snd_usb_endpoint_set_params never invokes the call to
>>> sync_ep_set_params because ep->type is always data.  Back up:
>>> snd_usb_endpoint_set_params is called from configure_endpoint.  It is
>>> called from an if block contingent on the substream's having a sync
>>> endpoint.  It does.  However, the call to snd_usb_endpoint_set_params
>>> passes subs->data_endpoint as the first argument, so
>>> snd_usb_endpoint_set_params simply repeats the operations it performed as
>>> a result of the previous invocation.  I presume that the first argument
>>> to the second call to snd_usb_endpoint_set_params should be
>>> subs->sync_endpoint.
>> Eh. You clearly spotted a bug here. The rally interesting thing is that
>> that it didn't bite us earlier, as it's in since 3.6.
> 
> Here's the diff.  I can't figure out how to submit a patch.
> 
> --- sound/usb/pcm.c.orig        2012-11-08 11:43:57.309732860 -0700
> +++ sound/usb/pcm.c     2012-11-08 11:41:06.512420658 -0700
> @@ -456,7 +456,7 @@ static int configure_endpoint(struct snd
>                 return ret;
>  
>         if (subs->sync_endpoint)
> -               ret = snd_usb_endpoint_set_params(subs->data_endpoint,
> +               ret = snd_usb_endpoint_set_params(subs->sync_endpoint,
>                                                   subs->pcm_format,
>                                                   subs->channels,
>                                                   subs->period_bytes,

Thanks - I just sent out a patch for this.



Daniel

  reply	other threads:[~2012-11-22 19:29 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <3884466.olklcBH31l@quintet>
     [not found] ` <508AE8B9.4040405@gmail.com>
     [not found]   ` <10249117.axLqbotY1S@quintet>
     [not found]     ` <2168981.L00zyKDK9R@quintet>
2012-11-04 10:39       ` [Alsa-user] Ticks when playing to USB DAC at high sample rates Daniel Mack
2012-11-05  1:53         ` Jeffrey Barish
2012-11-05 15:03           ` [Alsa-user] " Daniel Mack
2012-11-05 22:29             ` Jeffrey Barish
2012-11-06  0:12               ` [Alsa-user] " Daniel Mack
2012-11-06 23:54                 ` Jeffrey Barish
2012-11-07  9:01                   ` [Alsa-user] " Daniel Mack
2012-11-07  9:04                     ` Daniel Mack
2012-11-07 17:05                       ` Jeffrey Barish
2012-11-22 19:40                         ` [Alsa-user] " Daniel Mack
2012-11-22 21:08                           ` Daniel Mack
2012-11-08 18:54                     ` Jeffrey Barish
2012-11-22 19:29                       ` Daniel Mack [this message]
2012-11-05 14:20         ` Jeffrey Barish

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=50AE7D01.4070101@gmail.com \
    --to=zonque@gmail.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=alsa-user@lists.sourceforge.net \
    --cc=jeff_barish@earthlink.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.