Re:

Takashi Iwai
2012-09-06T06:48:28Z

At Thu, 06 Sep 2012 08:33:30 +0200,
Daniel Mack wrote:
>
> On 06.09.2012 08:02, Markus Trippelsdorf wrote:
> > On 2012.09.04 at 16:40 +0200, Takashi Iwai wrote:
> >> ----------------------------------------------------------------
> >> Sound fixes for 3.6-rc5
> >>
> >> There are nothing scaring, contains only small fixes for HD-audio and
> >> USB-audio:
> >> - EPSS regression fix and GPIO fix for HD-audio IDT codecs
> >> - A series of USB-audio regression fixes that are found since 3.5 kernel
> >>
> >> ----------------------------------------------------------------
> >> Daniel Mack (4):
> >> ALSA: snd-usb: Fix URB cancellation at stream start
> >> ALSA: snd-usb: restore delay information
> > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > The commit fbcfbf5f above causes the following lines to be printed
> > whenever I start a new song:
>
> Copied Pierre-Louis Bossart - he wrote the code in 294c4fb8 which this
> patch (fbcfbf5f) brings back now.
>
> > delay: estimated 0, actual 352
> > delay: estimated 353, actual 705
> >
> > (44.1 * 8 = 352.8)
> >
> > This happens with an USB-DAC that identifies itself as "C-Media USB
> > Headphone Set".
>
> And you didn't you see these lines with 3.4?

Maybe the difference of start condition?

Markus, does the patch below fix anything?

Takashi

---
diff --git a/sound/usb/pcm.c b/sound/usb/pcm.c
index fd5e982..0ff9f1a 100644
--- a/sound/usb/pcm.c
+++ b/sound/usb/pcm.c
@@ -556,7 +556,7 @@ static int snd_usb_pcm_prepare(struct snd_pcm_substream *substream)
subs->hwptr_done = 0;
subs->transfer_done = 0;
subs->last_delay = 0;
- subs->last_frame_number = 0;
+ subs->last_frame_number = snd_usb_pcm_delay(subs, runtime->rate);
runtime->delay = 0;

/* for playback, submit the URBs now; otherwise, the first hwptr_done