Commit f8fdd495 authored by Harald Welte's avatar Harald Welte Committed by Jaroslav Kysela

ALSA: HDA VIA: Fix crash on codecs without Headphone

Don't enumerate via_hp_mixer while hp_mux is null (headphone does not exist),
to fix the crash of via_independent_hp_info (via_hp_mixer's .info), which will
reference hp_mux.
Signed-off-by: default avatarLogan Li <LoganLi@viatech.com.cn>
Signed-off-by: default avatarHarald Welte <HaraldWelte@viatech.com>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
Signed-off-by: default avatarJaroslav Kysela <perex@perex.cz>
parent a6d77317
...@@ -1303,7 +1303,8 @@ static int vt1708_parse_auto_config(struct hda_codec *codec) ...@@ -1303,7 +1303,8 @@ static int vt1708_parse_auto_config(struct hda_codec *codec)
spec->input_mux = &spec->private_imux[0]; spec->input_mux = &spec->private_imux[0];
spec->mixers[spec->num_mixers++] = via_hp_mixer; if (spec->hp_mux)
spec->mixers[spec->num_mixers++] = via_hp_mixer;
return 1; return 1;
} }
...@@ -1773,6 +1774,9 @@ static int vt1709_parse_auto_config(struct hda_codec *codec) ...@@ -1773,6 +1774,9 @@ static int vt1709_parse_auto_config(struct hda_codec *codec)
spec->input_mux = &spec->private_imux[0]; spec->input_mux = &spec->private_imux[0];
if (spec->hp_mux)
spec->mixers[spec->num_mixers++] = via_hp_mixer;
return 1; return 1;
} }
...@@ -2314,7 +2318,8 @@ static int vt1708B_parse_auto_config(struct hda_codec *codec) ...@@ -2314,7 +2318,8 @@ static int vt1708B_parse_auto_config(struct hda_codec *codec)
spec->input_mux = &spec->private_imux[0]; spec->input_mux = &spec->private_imux[0];
spec->mixers[spec->num_mixers++] = via_hp_mixer; if (spec->hp_mux)
spec->mixers[spec->num_mixers++] = via_hp_mixer;
return 1; return 1;
} }
...@@ -2770,7 +2775,8 @@ static int vt1708S_parse_auto_config(struct hda_codec *codec) ...@@ -2770,7 +2775,8 @@ static int vt1708S_parse_auto_config(struct hda_codec *codec)
spec->input_mux = &spec->private_imux[0]; spec->input_mux = &spec->private_imux[0];
spec->mixers[spec->num_mixers++] = via_hp_mixer; if (spec->hp_mux)
spec->mixers[spec->num_mixers++] = via_hp_mixer;
return 1; return 1;
} }
...@@ -3100,7 +3106,8 @@ static int vt1702_parse_auto_config(struct hda_codec *codec) ...@@ -3100,7 +3106,8 @@ static int vt1702_parse_auto_config(struct hda_codec *codec)
spec->input_mux = &spec->private_imux[0]; spec->input_mux = &spec->private_imux[0];
spec->mixers[spec->num_mixers++] = via_hp_mixer; if (spec->hp_mux)
spec->mixers[spec->num_mixers++] = via_hp_mixer;
return 1; return 1;
} }
......
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