[alsa-devel] PROC_COEF/PROC_INDEX question
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?
Thanks, Fengguang
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.
Takashi
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
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
Thanks, Fengguang
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
On Fri, Aug 07, 2009 at 06:05:02PM +0800, Takashi Iwai wrote:
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.
OK, so the coef read has some 'side effects', hehe.
participants (2)
-
Takashi Iwai
-
Wu Fengguang