Commit c249452f authored by Takashi Iwai's avatar Takashi Iwai Committed by Greg Kroah-Hartman

ALSA: hda-codec - Avoid zero NID in line_out_pins[] of STAC codecs

patch c480f79b in mainline

[ALSA] hda-codec - Avoid zero NID in line_out_pins[] of STAC codecs

The STAC codes adds line_out_pins[] for shared mic/line-inputs accordingly.
But, the current code may give a hole with NID=0 in some setting, which
results in an error at probe.  This patch fixes the problem.
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 306a49e9
...@@ -1182,7 +1182,8 @@ static int stac92xx_add_dyn_out_pins(struct hda_codec *codec, struct auto_pin_cf ...@@ -1182,7 +1182,8 @@ static int stac92xx_add_dyn_out_pins(struct hda_codec *codec, struct auto_pin_cf
case 3: case 3:
/* add line-in as side */ /* add line-in as side */
if (cfg->input_pins[AUTO_PIN_LINE] && num_dacs > 3) { if (cfg->input_pins[AUTO_PIN_LINE] && num_dacs > 3) {
cfg->line_out_pins[3] = cfg->input_pins[AUTO_PIN_LINE]; cfg->line_out_pins[cfg->line_outs] =
cfg->input_pins[AUTO_PIN_LINE];
spec->line_switch = 1; spec->line_switch = 1;
cfg->line_outs++; cfg->line_outs++;
} }
...@@ -1190,12 +1191,14 @@ static int stac92xx_add_dyn_out_pins(struct hda_codec *codec, struct auto_pin_cf ...@@ -1190,12 +1191,14 @@ static int stac92xx_add_dyn_out_pins(struct hda_codec *codec, struct auto_pin_cf
case 2: case 2:
/* add line-in as clfe and mic as side */ /* add line-in as clfe and mic as side */
if (cfg->input_pins[AUTO_PIN_LINE] && num_dacs > 2) { if (cfg->input_pins[AUTO_PIN_LINE] && num_dacs > 2) {
cfg->line_out_pins[2] = cfg->input_pins[AUTO_PIN_LINE]; cfg->line_out_pins[cfg->line_outs] =
cfg->input_pins[AUTO_PIN_LINE];
spec->line_switch = 1; spec->line_switch = 1;
cfg->line_outs++; cfg->line_outs++;
} }
if (cfg->input_pins[AUTO_PIN_MIC] && num_dacs > 3) { if (cfg->input_pins[AUTO_PIN_MIC] && num_dacs > 3) {
cfg->line_out_pins[3] = cfg->input_pins[AUTO_PIN_MIC]; cfg->line_out_pins[cfg->line_outs] =
cfg->input_pins[AUTO_PIN_MIC];
spec->mic_switch = 1; spec->mic_switch = 1;
cfg->line_outs++; cfg->line_outs++;
} }
...@@ -1203,12 +1206,14 @@ static int stac92xx_add_dyn_out_pins(struct hda_codec *codec, struct auto_pin_cf ...@@ -1203,12 +1206,14 @@ static int stac92xx_add_dyn_out_pins(struct hda_codec *codec, struct auto_pin_cf
case 1: case 1:
/* add line-in as surr and mic as clfe */ /* add line-in as surr and mic as clfe */
if (cfg->input_pins[AUTO_PIN_LINE] && num_dacs > 1) { if (cfg->input_pins[AUTO_PIN_LINE] && num_dacs > 1) {
cfg->line_out_pins[1] = cfg->input_pins[AUTO_PIN_LINE]; cfg->line_out_pins[cfg->line_outs] =
cfg->input_pins[AUTO_PIN_LINE];
spec->line_switch = 1; spec->line_switch = 1;
cfg->line_outs++; cfg->line_outs++;
} }
if (cfg->input_pins[AUTO_PIN_MIC] && num_dacs > 2) { if (cfg->input_pins[AUTO_PIN_MIC] && num_dacs > 2) {
cfg->line_out_pins[2] = cfg->input_pins[AUTO_PIN_MIC]; cfg->line_out_pins[cfg->line_outs] =
cfg->input_pins[AUTO_PIN_MIC];
spec->mic_switch = 1; spec->mic_switch = 1;
cfg->line_outs++; cfg->line_outs++;
} }
......
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