[alsa-devel] [PATCH 1/1] ASoC: tas5086: Reinit register values in probe function

pascal.huerst at gmail.com pascal.huerst at gmail.com
Thu Jan 22 16:26:46 CET 2015


From: Pascal Huerst <pascal.huerst at gmail.com>

If the machine driver has been un/reloaded, the register values of
the tas5086 codec have to be reinitialized, in order to work properly.

Signed-off-by: Pascal Huerst <pascal.huerst at gmail.com>

diff --git a/sound/soc/codecs/tas5086.c b/sound/soc/codecs/tas5086.c
index 249ef5c..cd19171 100644
--- a/sound/soc/codecs/tas5086.c
+++ b/sound/soc/codecs/tas5086.c
@@ -851,10 +851,16 @@ static int tas5086_probe(struct snd_soc_codec *codec)
 	}
 
 	tas5086_reset(priv);
+	regcache_mark_dirty(priv->regmap);
+
 	ret = tas5086_init(codec->dev, priv);
 	if (ret < 0)
 		goto exit_disable_regulators;
 
+	ret = regcache_sync(priv->regmap);
+	if (ret < 0)
+		goto exit_disable_regulators;
+
 	/* set master volume to 0 dB */
 	ret = regmap_write(priv->regmap, TAS5086_MASTER_VOL, 0x30);
 	if (ret < 0)
-- 
1.9.3



More information about the Alsa-devel mailing list