aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2014-08-14 05:39:57 -0400
committerTakashi Iwai <tiwai@suse.de>2014-08-14 05:39:57 -0400
commit61074c1a2d798be90e149a9ed4ce0e3596c00a38 (patch)
tree90056774f471f28fe155c70c05743d751bb28466 /sound/pci
parente24aa0a4c5ac92a171d9dd74a8d3dbf652990d36 (diff)
ALSA: hda - Set TLV_DB_SCALE_MUTE bit for cx5051 vmaster
Conexnat HD-audio driver has a workaround for cx5051 (aka CX20561) chip to add fake mute controls to each amp (commit 3868137e). This implies the minimum-as-mute TLV bit in TLV for each corresponding control. Meanwhile we build the virtual master from these, but the TLV bit is missing, even though the slaves have it. This patch simply adds the missing TLV_DB_SCALE_MUTE bit for vmaster, as already done in patch_sigmatel.c. Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/hda/patch_conexant.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
index 7627a69ca6d7..6f2fa838b635 100644
--- a/sound/pci/hda/patch_conexant.c
+++ b/sound/pci/hda/patch_conexant.c
@@ -26,6 +26,7 @@
26#include <linux/module.h> 26#include <linux/module.h>
27#include <sound/core.h> 27#include <sound/core.h>
28#include <sound/jack.h> 28#include <sound/jack.h>
29#include <sound/tlv.h>
29 30
30#include "hda_codec.h" 31#include "hda_codec.h"
31#include "hda_local.h" 32#include "hda_local.h"
@@ -859,6 +860,11 @@ static int patch_conexant_auto(struct hda_codec *codec)
859 if (err < 0) 860 if (err < 0)
860 goto error; 861 goto error;
861 862
863 if (codec->vendor_id == 0x14f15051) {
864 /* minimum value is actually mute */
865 spec->gen.vmaster_tlv[3] |= TLV_DB_SCALE_MUTE;
866 }
867
862 codec->patch_ops = cx_auto_patch_ops; 868 codec->patch_ops = cx_auto_patch_ops;
863 869
864 /* Some laptops with Conexant chips show stalls in S3 resume, 870 /* Some laptops with Conexant chips show stalls in S3 resume,