mirror of
https://github.com/torvalds/linux.git
synced 2024-12-01 00:21:32 +00:00
[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: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
This commit is contained in:
parent
dc81bed127
commit
c480f79bdc
@ -1479,7 +1479,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++;
|
||||||
}
|
}
|
||||||
@ -1487,12 +1488,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++;
|
||||||
}
|
}
|
||||||
@ -1500,12 +1503,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++;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user