Skip to content

Commit

Permalink
ALSA: hda - Fix initialization of primary outputs in hda_generic.c
Browse files Browse the repository at this point in the history
There were some old codes that look not stable enough, which was
derived from the old Realtek code.  The initialization for primary
output in init_multi_out() needs to consider the case of shared DAC.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
  • Loading branch information
Takashi Iwai committed Jan 12, 2013
1 parent db23fd1 commit 64049c8
Showing 1 changed file with 9 additions and 6 deletions.
15 changes: 9 additions & 6 deletions sound/pci/hda/hda_generic.c
Original file line number Diff line number Diff line change
Expand Up @@ -3372,6 +3372,7 @@ static void set_output_and_unmute(struct hda_codec *codec, hda_nid_t pin,
static void init_multi_out(struct hda_codec *codec)
{
struct hda_gen_spec *spec = codec->spec;
hda_nid_t nid, dac;
int pin_type;
int i;

Expand All @@ -3380,12 +3381,14 @@ static void init_multi_out(struct hda_codec *codec)
else
pin_type = PIN_OUT;

for (i = 0; i <= HDA_SIDE; i++) {
hda_nid_t nid = spec->autocfg.line_out_pins[i];
if (nid)
set_output_and_unmute(codec, nid, pin_type,
spec->multiout.dac_nids[i]);

for (i = 0; i < spec->autocfg.line_outs; i++) {
nid = spec->autocfg.line_out_pins[i];
if (nid) {
dac = spec->multiout.dac_nids[i];
if (!dac)
dac = spec->multiout.dac_nids[0];
set_output_and_unmute(codec, nid, pin_type, dac);
}
}
}

Expand Down

0 comments on commit 64049c8

Please sign in to comment.