summary refs log tree commit diff
path: root/sound/soc/codecs
diff options
context:
space:
mode:
authorBard Liao <bardliao@realtek.com>2014-11-13 09:55:22 +0800
committerMark Brown <broonie@kernel.org>2014-11-13 11:34:41 +0000
commit850577db99dbc4fdebe62d30d380de1878f77d2a (patch)
tree58c7045a7f2852f67b19daaf2de99c29b072633a /sound/soc/codecs
parent5563502cb68d9520e13fe2350922ca88c4531c63 (diff)
downloadlinux-850577db99dbc4fdebe62d30d380de1878f77d2a.tar.gz
ASoC: rt5645: add register setting for TDM
We need to set extra register to avoid a recording issue in TDM
mode.

Signed-off-by: Bard Liao <bardliao@realtek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/codecs')
-rw-r--r--sound/soc/codecs/rt5645.c5
-rw-r--r--sound/soc/codecs/rt5645.h1
2 files changed, 5 insertions, 1 deletions
diff --git a/sound/soc/codecs/rt5645.c b/sound/soc/codecs/rt5645.c
index 665f8b64efe9..57afa12b2f54 100644
--- a/sound/soc/codecs/rt5645.c
+++ b/sound/soc/codecs/rt5645.c
@@ -2112,8 +2112,11 @@ static int rt5645_set_tdm_slot(struct snd_soc_dai *dai, unsigned int tx_mask,
 	struct snd_soc_codec *codec = dai->codec;
 	unsigned int val = 0;
 
-	if (rx_mask || tx_mask)
+	if (rx_mask || tx_mask) {
 		val |= (1 << 14);
+		snd_soc_update_bits(codec, RT5645_BASS_BACK,
+			RT5645_G_BB_BST_MASK, RT5645_G_BB_BST_25DB);
+	}
 
 	switch (slots) {
 	case 4:
diff --git a/sound/soc/codecs/rt5645.h b/sound/soc/codecs/rt5645.h
index 82f681b02949..196daf03fe28 100644
--- a/sound/soc/codecs/rt5645.h
+++ b/sound/soc/codecs/rt5645.h
@@ -1855,6 +1855,7 @@
 #define RT5645_M_BB_HPF_R_SFT			6
 #define RT5645_G_BB_BST_MASK			(0x3f)
 #define RT5645_G_BB_BST_SFT			0
+#define RT5645_G_BB_BST_25DB			0x14
 
 /* MP3 Plus Control 1 (0xd0) */
 #define RT5645_M_MP3_L_MASK			(0x1 << 15)