Skip to content

Commit

Permalink
ALSA: hda - Initialize digital-input path properly
Browse files Browse the repository at this point in the history
Call the path activation for the digital input pin properly, not only
setting the pin control.  Also add spec->digin_path for keeping the
path index.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
  • Loading branch information
Takashi Iwai committed Jan 12, 2013
1 parent 196c176 commit 2430d7b
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 1 deletion.
8 changes: 7 additions & 1 deletion sound/pci/hda/hda_generic.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
}
Expand Down Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions sound/pci/hda/hda_generic.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit 2430d7b

Please sign in to comment.