diff options
author | Takashi Iwai <tiwai@suse.de> | 2015-06-12 08:10:20 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2015-06-12 08:10:20 +0200 |
commit | cc1b76ed32607ba378986931e73b64231085816f (patch) | |
tree | 2554500c3e743249afafd1857a3956aae1b2220e /sound/hda | |
parent | 9e8af74c38162c884465385a7f1ded1c98cdc752 (diff) | |
parent | 535115b5ff51c702a9a22feb918707c2fe1fbd17 (diff) |
Merge branch 'for-linus' into for-next
Yet another non-trivial conflicts resolution for the recent HD-audio fix.
Conflicts:
sound/pci/hda/hda_intel.c
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/hda')
-rw-r--r-- | sound/hda/hdac_regmap.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/sound/hda/hdac_regmap.c b/sound/hda/hdac_regmap.c index c4f5e61d4404..1eabcdf69457 100644 --- a/sound/hda/hdac_regmap.c +++ b/sound/hda/hdac_regmap.c @@ -246,6 +246,9 @@ static int hda_reg_read(void *context, unsigned int reg, unsigned int *val) return hda_reg_read_stereo_amp(codec, reg, val); if (verb == AC_VERB_GET_PROC_COEF) return hda_reg_read_coef(codec, reg, val); + if ((verb & 0x700) == AC_VERB_SET_AMP_GAIN_MUTE) + reg &= ~AC_AMP_FAKE_MUTE; + err = snd_hdac_exec_verb(codec, reg, 0, val); if (err < 0) return err; @@ -283,6 +286,8 @@ static int hda_reg_write(void *context, unsigned int reg, unsigned int val) switch (verb & 0xf00) { case AC_VERB_SET_AMP_GAIN_MUTE: + if ((reg & AC_AMP_FAKE_MUTE) && (val & AC_AMP_MUTE)) + val = 0; verb = AC_VERB_SET_AMP_GAIN_MUTE; if (reg & AC_AMP_GET_LEFT) verb |= AC_AMP_SET_LEFT >> 8; |