From: Takashi Iwai Date: Tue, 18 Dec 2012 16:33:04 +0000 (+0100) Subject: ALSA: hda/realtek - Assign Master mixer when possible X-Git-Tag: v3.9-rc1~52^2~77^2~156 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=52a8efab10637ae5f58123be3ab3b9cb6a9ff2b0;p=platform%2Fkernel%2Flinux-stable.git ALSA: hda/realtek - Assign Master mixer when possible There are a few more cases where we can assign "Master" mixer element safely, e.g. when a single DAC is used in the whole output paths. Also, when vmaster hook is present, avoid "Master" but assign "PCM" instead. Otherwise vmaster hook won't work properly. Signed-off-by: Takashi Iwai --- diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index a304614..f21c53d 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -2306,7 +2306,14 @@ static const char *alc_get_line_out_pfx(struct alc_spec *spec, int ch, *index = 0; if (cfg->line_outs == 1 && !spec->multi_ios && !cfg->hp_outs && !cfg->speaker_outs && can_be_master) - return "Master"; + return spec->vmaster_mute.hook ? "PCM" : "Master"; + + /* if there is really a single DAC used in the whole output paths, + * use it master (or "PCM" if a vmaster hook is present) + */ + if (spec->multiout.num_dacs == 1 && !spec->mixer_nid && + !spec->multiout.hp_out_nid[0] && !spec->multiout.extra_out_nid[0]) + return spec->vmaster_mute.hook ? "PCM" : "Master"; switch (cfg->line_out_type) { case AUTO_PIN_SPEAKER_OUT: