[alsa-devel] Should we really use POS_FIX_VIACOMBO for AMD/ATI chipsets?
Takashi Iwai
tiwai at suse.de
Fri May 20 16:19:57 CEST 2011
At Fri, 20 May 2011 15:46:37 +0200,
Takashi Iwai wrote:
>
> At Fri, 20 May 2011 15:33:56 +0200,
> David Henningsson wrote:
> >
> > I'm far from sure, but I could be on to something...
> >
> > Looking at the code for azx_via_get_position, it seems that for
> > recording streams, it accesses a register at position
> > VIA_IN_STREAM0_FIFO_SIZE_OFFSET = 0x90. Looking at the datasheet for
> > SB700, that register is not even present. This does not seem right to me.
> >
> > Could it be that we should use POS_FIX_LPIB by default for AMD/ATI
> > chipsets instead? It seems more reasonable to me.
> > In addition, I looked through some of the commits for quirking to
> > POS_FIX_LPIB and the four I checked were all ATI chipsets.
> >
> > So; I've tried adding:
> > options snd-hda-intel position_fix=1
> > to /etc/modprobe.d/alsa-base.conf
> >
> > ...to my machine with the infamous [1002:4383] controller (and
> > rebooted), and the few times I've tested, recording worked successfully
> > with pulseaudio. So could you please follow this up with testing on your
> > machines to see if we have actually managed to solve this long-standing bug?
> >
> > The only annoying thing is that I didn't realise this earlier :-/
>
> Hmm, I took this as default as it seems fixing the issue on machines,
> indeed. Actually I had to use this option first for removing
> recording noises on AMD Hudson. But, maybe I need to double-check
> again after the snoop bit and other workarounds.
>
> The FIFO size might got wrong on AMD. In that case, the driver
> calculates as if FIFO = 0. But, it can still help for correcting the
> position via position-buffer vs LPIB comparison.
>
> For the real check, we should put some debug prints on real machines.
Actually the values read there look not working with posbuf.
Let's fix them to use POS_FIX_LPIB now.
Thanks for remark!
Takashi
More information about the Alsa-devel
mailing list