Commit 61074c1a2d798be90e149a9ed4ce0e3596c00a38
1 parent
e24aa0a4c5
Exists in
ti-lsk-linux-4.1.y
and in
10 other branches
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>
Showing 1 changed file with 6 additions and 0 deletions Side-by-side Diff
sound/pci/hda/patch_conexant.c
... | ... | @@ -26,6 +26,7 @@ |
26 | 26 | #include <linux/module.h> |
27 | 27 | #include <sound/core.h> |
28 | 28 | #include <sound/jack.h> |
29 | +#include <sound/tlv.h> | |
29 | 30 | |
30 | 31 | #include "hda_codec.h" |
31 | 32 | #include "hda_local.h" |
... | ... | @@ -858,6 +859,11 @@ |
858 | 859 | err = snd_hda_gen_parse_auto_config(codec, &spec->gen.autocfg); |
859 | 860 | if (err < 0) |
860 | 861 | goto error; |
862 | + | |
863 | + if (codec->vendor_id == 0x14f15051) { | |
864 | + /* minimum value is actually mute */ | |
865 | + spec->gen.vmaster_tlv[3] |= TLV_DB_SCALE_MUTE; | |
866 | + } | |
861 | 867 | |
862 | 868 | codec->patch_ops = cx_auto_patch_ops; |
863 | 869 |