All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ASoC: ssm4567: Keep TDM_BCLKS in ssm4567_set_dai_fmt
@ 2015-07-21 21:46 Ben Zhang
  2015-07-21 21:49 ` Lars-Peter Clausen
  2015-07-22  9:57 ` Applied "ASoC: ssm4567: Keep TDM_BCLKS in ssm4567_set_dai_fmt" to the asoc tree Mark Brown
  0 siblings, 2 replies; 4+ messages in thread
From: Ben Zhang @ 2015-07-21 21:46 UTC (permalink / raw)
  To: Mark Brown
  Cc: Harsha Priya, Ben Zhang, alsa-devel, Lars-Peter Clausen,
	Anatol Pomozov

The regmap_write in ssm4567_set_dai_fmt accidentally clears the
TDM_BCLKS field which was set earlier by ssm4567_set_tdm_slot.

This patch fixes it by using regmap_update_bits with proper mask.

Signed-off-by: Ben Zhang <benzh@chromium.org>
---
 sound/soc/codecs/ssm4567.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/sound/soc/codecs/ssm4567.c b/sound/soc/codecs/ssm4567.c
index 4662587..a757ab8 100644
--- a/sound/soc/codecs/ssm4567.c
+++ b/sound/soc/codecs/ssm4567.c
@@ -315,7 +315,13 @@ static int ssm4567_set_dai_fmt(struct snd_soc_dai *dai, unsigned int fmt)
 	if (invert_fclk)
 		ctrl1 |= SSM4567_SAI_CTRL_1_FSYNC;
 
-	return regmap_write(ssm4567->regmap, SSM4567_REG_SAI_CTRL_1, ctrl1);
+	return regmap_update_bits(ssm4567->regmap, SSM4567_REG_SAI_CTRL_1,
+			SSM4567_SAI_CTRL_1_BCLK |
+			SSM4567_SAI_CTRL_1_FSYNC |
+			SSM4567_SAI_CTRL_1_LJ |
+			SSM4567_SAI_CTRL_1_TDM |
+			SSM4567_SAI_CTRL_1_PDM,
+			ctrl1);
 }
 
 static int ssm4567_set_power(struct ssm4567 *ssm4567, bool enable)
-- 
2.4.3.573.g4eafbef

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-07-22  9:57 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-21 21:46 [PATCH] ASoC: ssm4567: Keep TDM_BCLKS in ssm4567_set_dai_fmt Ben Zhang
2015-07-21 21:49 ` Lars-Peter Clausen
2015-07-21 22:02   ` Anatol Pomozov
2015-07-22  9:57 ` Applied "ASoC: ssm4567: Keep TDM_BCLKS in ssm4567_set_dai_fmt" to the asoc tree Mark Brown

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.