Commit 93e82ae7 authored by Takashi Iwai's avatar Takashi Iwai

ALSA: hda - Set function_id only on FG nodes

(Re)set function_id only from the value on FG nodes.
The current code overrides the value with the last widget.
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 4dc1f87f
...@@ -642,19 +642,21 @@ static int get_codec_name(struct hda_codec *codec) ...@@ -642,19 +642,21 @@ static int get_codec_name(struct hda_codec *codec)
*/ */
static void /*__devinit*/ setup_fg_nodes(struct hda_codec *codec) static void /*__devinit*/ setup_fg_nodes(struct hda_codec *codec)
{ {
int i, total_nodes; int i, total_nodes, function_id;
hda_nid_t nid; hda_nid_t nid;
total_nodes = snd_hda_get_sub_nodes(codec, AC_NODE_ROOT, &nid); total_nodes = snd_hda_get_sub_nodes(codec, AC_NODE_ROOT, &nid);
for (i = 0; i < total_nodes; i++, nid++) { for (i = 0; i < total_nodes; i++, nid++) {
codec->function_id = snd_hda_param_read(codec, nid, function_id = snd_hda_param_read(codec, nid,
AC_PAR_FUNCTION_TYPE) & 0xff; AC_PAR_FUNCTION_TYPE) & 0xff;
switch (codec->function_id) { switch (function_id) {
case AC_GRP_AUDIO_FUNCTION: case AC_GRP_AUDIO_FUNCTION:
codec->afg = nid; codec->afg = nid;
codec->function_id = function_id;
break; break;
case AC_GRP_MODEM_FUNCTION: case AC_GRP_MODEM_FUNCTION:
codec->mfg = nid; codec->mfg = nid;
codec->function_id = function_id;
break; break;
default: default:
break; break;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment