diff options
author | Takashi Iwai <tiwai@suse.de> | 2013-03-22 15:11:07 +0100 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2013-03-22 15:11:07 +0100 |
commit | 4abdbd1c2c1832e7270e546307ffb3e56b286db2 (patch) | |
tree | 884c75ef8d33b55538fc63cf377cc1fe1e4fb10d /sound/pci/hda/patch_via.c | |
parent | bec8e6807ef9f58955960c977f21c2a125145cdb (diff) | |
download | linux-stable-4abdbd1c2c1832e7270e546307ffb3e56b286db2.tar.gz linux-stable-4abdbd1c2c1832e7270e546307ffb3e56b286db2.tar.bz2 linux-stable-4abdbd1c2c1832e7270e546307ffb3e56b286db2.zip |
ALSA: hda - VIA prefers side surrounds over HP
The recent fix for the independent HP reduced the availability of the
side surround output, because there are only 4 DACs for 7.1 and a HP
outputs. Adjust the badness tables for VIA so that 7.1 outputs are
activated for the cost of missing independent HP.
Once when we implement the dynamic DAC switching to multiple outputs,
this conflicts will be eased in future...
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda/patch_via.c')
-rw-r--r-- | sound/pci/hda/patch_via.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c index c35338a8771d..e0dadcf2030d 100644 --- a/sound/pci/hda/patch_via.c +++ b/sound/pci/hda/patch_via.c @@ -626,11 +626,31 @@ static void via_set_jack_unsol_events(struct hda_codec *codec) } } +static const struct badness_table via_main_out_badness = { + .no_primary_dac = 0x10000, + .no_dac = 0x4000, + .shared_primary = 0x10000, + .shared_surr = 0x20, + .shared_clfe = 0x20, + .shared_surr_main = 0x20, +}; +static const struct badness_table via_extra_out_badness = { + .no_primary_dac = 0x4000, + .no_dac = 0x4000, + .shared_primary = 0x12, + .shared_surr = 0x20, + .shared_clfe = 0x20, + .shared_surr_main = 0x10, +}; + static int via_parse_auto_config(struct hda_codec *codec) { struct via_spec *spec = codec->spec; int err; + spec->gen.main_out_badness = &via_main_out_badness; + spec->gen.extra_out_badness = &via_extra_out_badness; + err = snd_hda_parse_pin_defcfg(codec, &spec->gen.autocfg, NULL, 0); if (err < 0) return err; |