[alsa-devel] PROC_COEF/PROC_INDEX question
Takashi Iwai
tiwai at suse.de
Fri Aug 7 12:05:02 CEST 2009
At Fri, 7 Aug 2009 18:01:21 +0800,
Wu Fengguang wrote:
>
> On Fri, Aug 07, 2009 at 05:45:14PM +0800, Takashi Iwai wrote:
> > At Fri, 7 Aug 2009 17:38:59 +0800,
> > Wu Fengguang wrote:
> > >
> > > Hello,
> > >
> > > I'm not sure of the usage for GET_PROC_COEF/GET_COEF_INDEX, and found
> > > that their return value is unstable (changing all the time) for codec:
> > >
> > > Codec: Realtek ALC888
> > > Address: 2
> > > Function Id: 0x1
> > > Vendor Id: 0x10ec0888
> > > Subsystem Id: 0x80860023
> > > Revision Id: 0x100202
> > >
> > > For example:
> > >
> > > # hda-verb /dev/snd/hwC0D2 0x20 GET_PROC_COEF 0
> > > nid = 0x20, verb = 0xc00, param = 0x0
> > > value = 0x80
> > > # hda-verb /dev/snd/hwC0D2 0x20 GET_COEF_INDEX 0
> > > nid = 0x20, verb = 0xd00, param = 0x0
> > > value = 0xe
> > > # hda-verb /dev/snd/hwC0D2 0x20 GET_PROC_COEF 0
> > > nid = 0x20, verb = 0xc00, param = 0x0
> > > value = 0x9c00
> > > # hda-verb /dev/snd/hwC0D2 0x20 GET_COEF_INDEX 0
> > > nid = 0x20, verb = 0xd00, param = 0x0
> > > value = 0xf
> > >
> > > I wonder if this is the normal case?
> >
> > AFAIK, depending on the mode, the index is incremented automatically.
>
> Ah, yes. That's in line with the above data.
>
> When repeatingly call GET_PROC_COEF, it returns some 'random' values:
>
> # hda-verb /dev/snd/hwC0D2 0x20 GET_PROC_COEF 0
> nid = 0x20, verb = 0xc00, param = 0x0
> value = 0x4f
> # hda-verb /dev/snd/hwC0D2 0x20 GET_PROC_COEF 0
> nid = 0x20, verb = 0xc00, param = 0x0
> value = 0x8000
> # hda-verb /dev/snd/hwC0D2 0x20 GET_PROC_COEF 0
> nid = 0x20, verb = 0xc00, param = 0x0
> value = 0x2520
> # hda-verb /dev/snd/hwC0D2 0x20 GET_PROC_COEF 0
> nid = 0x20, verb = 0xc00, param = 0x0
> value = 0x3e00
I guess it's not random but just the value of the next index.
> But when repeatingly call GET_COEF_INDEX, it returns the same value:
>
> # hda-verb /dev/snd/hwC0D2 0x20 GET_COEF_INDEX 0
> nid = 0x20, verb = 0xd00, param = 0x0
> value = 0xd
> # hda-verb /dev/snd/hwC0D2 0x20 GET_COEF_INDEX 0
> nid = 0x20, verb = 0xd00, param = 0x0
> value = 0xd
Reading the index itself doesn't increment the index. Reading
the coef value increases the index. So is my understanding.
Takashi
More information about the Alsa-devel
mailing list