[alsa-devel] [REGRESSION bisected] Sound goes too fast due to commit 7b3a177b0

Takashi Iwai tiwai at suse.de
Wed Apr 14 15:39:20 CEST 2010


At Wed, 14 Apr 2010 13:54:48 +0200,
Éric Piel wrote:
> 
> On 14/04/10 13:22, Éric Piel wrote:
> :
> > I don't fully grasp the meaning of bdl_pos_adj, so I don't know if it's
> > a bug to not play correctly when forcing it to 0. Is it?
> > 
> > I'll ask to another reporter who had the same problem if bdl_pos_adj is
> > also set to 0...
> Frank (cc'd here) has the same problem of music going too fast (on a
> 2.6.33 kernel with the "culprit" commit applied). On his system  "cat
> /sys/module/snd_hda_intel/parameters/bdl_pos_adj" gives:
> 32,32,-1,-1,-1,-1,-1,-1
> 
> He also mentioned that on another system also using snd_hda_intel, with
> the same bdl_pos_adj, it works fine.

bdl_pos_adj is really a workaround for devices that report wrong DMA
position (or at the wrong timing).  I guess position_fix=1 may fix
better.

Although the driver already has a dynamic switching of position_fix
method, it checks only the very first read.  If it gives a (more or
less) sane value, it prefers the position-buffer method (corresponding
to position_fix=2) rather than reading LPIB register
(position_fix=1).

It seems, however, that more devices work sanely with LPIB reg
nowdays.  This wasn't the case formerly.  So, it might be better to
use position_fix=1 as default for modern systems...


Takashi


More information about the Alsa-devel mailing list