From 16ad724464ac82c479c1ea18e075973c8847d3f4 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 3 Jan 2013 16:33:02 +0100 Subject: [PATCH] --- yaml --- r: 353080 b: refs/heads/master c: e1284af730792344f96e1428a6199e19699dfccc h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/sound/pci/hda/hda_generic.c | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index a58916abfc74..b399f8ef7884 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 985803ca91c3039afd15a2fd32a9ef5771652cee +refs/heads/master: e1284af730792344f96e1428a6199e19699dfccc diff --git a/trunk/sound/pci/hda/hda_generic.c b/trunk/sound/pci/hda/hda_generic.c index 9228175f0806..3507448c8b0d 100644 --- a/trunk/sound/pci/hda/hda_generic.c +++ b/trunk/sound/pci/hda/hda_generic.c @@ -873,8 +873,10 @@ static int try_assign_dacs(struct hda_codec *codec, int num_outs, } if (!path) dac = dacs[i] = 0; - else + else { print_nid_path("output", path); + path->active = true; + } if (dac) badness += assign_out_path_ctls(codec, pin, dac); } @@ -1045,6 +1047,7 @@ static bool map_singles(struct hda_codec *codec, int outs, dacs[i] = dac; found = true; print_nid_path("output", path); + path->active = true; } } return found; @@ -2418,6 +2421,7 @@ static void parse_digital(struct hda_codec *codec) if (!path) continue; print_nid_path("digout", path); + path->active = true; if (!nums) { spec->multiout.dig_out_nid = dig_nid; spec->dig_out_type = spec->autocfg.dig_out_type[0]; @@ -3556,10 +3560,8 @@ static void set_output_and_unmute(struct hda_codec *codec, hda_nid_t pin, path = snd_hda_get_nid_path(codec, dac, pin); if (!path) return; - if (path->active) - return; - snd_hda_activate_path(codec, path, true, true); - set_pin_eapd(codec, pin, true); + snd_hda_activate_path(codec, path, path->active, true); + set_pin_eapd(codec, pin, path->active); } /* initialize primary output paths */