Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 270381
b: refs/heads/master
c: 48718ea
h: refs/heads/master
i:
  270379: 5316c28
v: v3
  • Loading branch information
David Henningsson authored and Takashi Iwai committed Oct 5, 2011
1 parent a51fa0d commit d4b7ddc
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 4 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: ce662bb205abdb2545252bce5a0ba11070c29305
refs/heads/master: 48718eab5a719cb537466124d9585b3066e27fae
18 changes: 15 additions & 3 deletions trunk/sound/pci/hda/patch_sigmatel.c
Original file line number Diff line number Diff line change
Expand Up @@ -2972,8 +2972,9 @@ static int check_all_dac_nids(struct sigmatel_spec *spec, hda_nid_t nid)
static hda_nid_t get_unassigned_dac(struct hda_codec *codec, hda_nid_t nid)
{
struct sigmatel_spec *spec = codec->spec;
struct auto_pin_cfg *cfg = &spec->autocfg;
int j, conn_len;
hda_nid_t conn[HDA_MAX_CONNECTIONS];
hda_nid_t conn[HDA_MAX_CONNECTIONS], fallback_dac;
unsigned int wcaps, wtype;

conn_len = snd_hda_get_connections(codec, nid, conn,
Expand Down Expand Up @@ -3001,10 +3002,21 @@ static hda_nid_t get_unassigned_dac(struct hda_codec *codec, hda_nid_t nid)
return conn[j];
}
}
/* if all DACs are already assigned, connect to the primary DAC */

/* if all DACs are already assigned, connect to the primary DAC,
unless we're assigning a secondary headphone */
fallback_dac = spec->multiout.dac_nids[0];
if (spec->multiout.hp_nid) {
for (j = 0; j < cfg->hp_outs; j++)
if (cfg->hp_pins[j] == nid) {
fallback_dac = spec->multiout.hp_nid;
break;
}
}

if (conn_len > 1) {
for (j = 0; j < conn_len; j++) {
if (conn[j] == spec->multiout.dac_nids[0]) {
if (conn[j] == fallback_dac) {
snd_hda_codec_write_cache(codec, nid, 0,
AC_VERB_SET_CONNECT_SEL, j);
break;
Expand Down

0 comments on commit d4b7ddc

Please sign in to comment.