From 09d67bd1e28d9e55f425eefcb8d3b9e5bdd59ecc Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Fri, 4 Jan 2013 15:09:42 +0100 Subject: [PATCH] --- yaml --- r: 353086 b: refs/heads/master c: 2430d7b78ba161656a621279964421aa06e04b02 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/sound/pci/hda/hda_generic.c | 8 +++++++- trunk/sound/pci/hda/hda_generic.h | 1 + 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 0c176caf5118..856c3738390f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 196c17668056ed5226070d06878242c116dfece2 +refs/heads/master: 2430d7b78ba161656a621279964421aa06e04b02 diff --git a/trunk/sound/pci/hda/hda_generic.c b/trunk/sound/pci/hda/hda_generic.c index c8bf81230206..4e49c5e27704 100644 --- a/trunk/sound/pci/hda/hda_generic.c +++ b/trunk/sound/pci/hda/hda_generic.c @@ -2521,6 +2521,7 @@ static void parse_digital(struct hda_codec *codec) print_nid_path("digin", path); path->active = true; spec->dig_in_nid = dig_nid; + spec->digin_path = snd_hda_get_path_idx(codec, path); break; } } @@ -3788,8 +3789,13 @@ static void init_digital(struct hda_codec *codec) spec->digout_paths[i]); } pin = spec->autocfg.dig_in_pin; - if (pin) + if (pin) { + struct nid_path *path; snd_hda_set_pin_ctl_cache(codec, pin, PIN_IN); + path = snd_hda_get_path_from_idx(codec, spec->digin_path); + if (path) + snd_hda_activate_path(codec, path, path->active, false); + } } /* clear unsol-event tags on unused pins; Conexant codecs seem to leave diff --git a/trunk/sound/pci/hda/hda_generic.h b/trunk/sound/pci/hda/hda_generic.h index 71d409f5de87..ba8de12b7125 100644 --- a/trunk/sound/pci/hda/hda_generic.h +++ b/trunk/sound/pci/hda/hda_generic.h @@ -136,6 +136,7 @@ struct hda_gen_spec { int speaker_paths[AUTO_CFG_MAX_OUTS]; int digout_paths[AUTO_CFG_MAX_OUTS]; int loopback_paths[HDA_MAX_NUM_INPUTS]; + int digin_path; /* auto-mic stuff */ int am_num_entries;