Skip to content

Commit

Permalink
ALSA: hda: 83xxx port 0xe DAC selection
Browse files Browse the repository at this point in the history
On the 92hd8xxx codecs port 0xe needs the connection selected to be the
last DAC in the list.

Signed-off-by: Matthew Ranostay <[email protected]>
Signed-off-by: Takashi Iwai <[email protected]>
  • Loading branch information
Matthew Ranostay authored and tiwai committed Jan 21, 2009
1 parent 989738c commit 65557f3
Showing 1 changed file with 11 additions and 5 deletions.
16 changes: 11 additions & 5 deletions sound/pci/hda/patch_sigmatel.c
Original file line number Diff line number Diff line change
Expand Up @@ -841,10 +841,6 @@ static struct hda_verb stac92hd73xx_10ch_core_init[] = {
};

static struct hda_verb stac92hd83xxx_core_init[] = {
/* start of config #1 */
{ 0xe, AC_VERB_SET_CONNECT_SEL, 0x3},

/* start of config #2 */
{ 0xa, AC_VERB_SET_CONNECT_SEL, 0x0},
{ 0xb, AC_VERB_SET_CONNECT_SEL, 0x0},
{ 0xd, AC_VERB_SET_CONNECT_SEL, 0x1},
Expand Down Expand Up @@ -4754,7 +4750,9 @@ static struct hda_input_mux stac92hd83xxx_dmux = {
static int patch_stac92hd83xxx(struct hda_codec *codec)
{
struct sigmatel_spec *spec;
hda_nid_t conn[STAC92HD83_DAC_COUNT + 1];
int err;
int num_dacs;

spec = kzalloc(sizeof(*spec), GFP_KERNEL);
if (spec == NULL)
Expand All @@ -4773,13 +4771,21 @@ static int patch_stac92hd83xxx(struct hda_codec *codec)
spec->num_pwrs = ARRAY_SIZE(stac92hd83xxx_pwr_nids);
spec->multiout.dac_nids = spec->dac_nids;


/* set port 0xe to select the last DAC
*/
num_dacs = snd_hda_get_connections(codec, 0x0e,
conn, STAC92HD83_DAC_COUNT + 1) - 1;

snd_hda_codec_write_cache(codec, 0xe, 0,
AC_VERB_SET_CONNECT_SEL, num_dacs);

spec->init = stac92hd83xxx_core_init;
switch (codec->vendor_id) {
case 0x111d7605:
break;
default:
spec->num_pwrs--;
spec->init++; /* switch to config #2 */
}

spec->mixer = stac92hd83xxx_mixer;
Expand Down

0 comments on commit 65557f3

Please sign in to comment.