All of lore.kernel.org
 help / color / mirror / Atom feed
From: Codrin Ciubotariu <codrin.ciubotariu@microchip.com>
To: <alsa-devel@alsa-project.org>, <linux-kernel@vger.kernel.org>
Cc: <lars@metafoo.de>, <lgirdwood@gmail.com>, <broonie@kernel.org>,
	<perex@perex.cz>, <tiwai@suse.com>,
	Codrin Ciubotariu <codrin.ciubotariu@microchip.com>
Subject: [PATCH 2/2] ASoC: codecs: ad193x: Reset DAC Control 1 register at probe
Date: Wed, 26 Jun 2019 13:49:47 +0300	[thread overview]
Message-ID: <20190626104947.26547-2-codrin.ciubotariu@microchip.com> (raw)
In-Reply-To: <20190626104947.26547-1-codrin.ciubotariu@microchip.com>

Since the ad193x codecs have no software reset, we have to reinitialize the
registers after a hardware reset. For example, if we change the
device-tree between these resets, changing the audio format of the DAI link
from DSP_A with 8 TDM channels to I2S 2 channels, DAC Control 1 register
will remain configured for 8 channels. This patch resets this register at
probe to its default value.

Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu@microchip.com>
---
 sound/soc/codecs/ad193x.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/sound/soc/codecs/ad193x.c b/sound/soc/codecs/ad193x.c
index 3ebc0524f4b2..cda435562a1d 100644
--- a/sound/soc/codecs/ad193x.c
+++ b/sound/soc/codecs/ad193x.c
@@ -427,6 +427,8 @@ static int ad193x_component_probe(struct snd_soc_component *component)
 	regmap_write(ad193x->regmap, AD193X_DAC_CTRL2, 0x1A);
 	/* dac in tdm mode */
 	regmap_write(ad193x->regmap, AD193X_DAC_CTRL0, 0x40);
+	/* reset DAC ctrl1 */
+	regmap_write(ad193x->regmap, AD193X_DAC_CTRL1, 0x00);
 
 	/* adc only */
 	if (ad193x_has_adc(ad193x)) {
-- 
2.20.1


WARNING: multiple messages have this Message-ID (diff)
From: Codrin Ciubotariu <codrin.ciubotariu@microchip.com>
To: alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org
Cc: lars@metafoo.de, lgirdwood@gmail.com, broonie@kernel.org,
	perex@perex.cz, tiwai@suse.com,
	Codrin Ciubotariu <codrin.ciubotariu@microchip.com>
Subject: [PATCH 2/2] ASoC: codecs: ad193x: Reset DAC Control 1 register at probe
Date: Wed, 26 Jun 2019 13:49:47 +0300	[thread overview]
Message-ID: <20190626104947.26547-2-codrin.ciubotariu@microchip.com> (raw)
In-Reply-To: <20190626104947.26547-1-codrin.ciubotariu@microchip.com>

Since the ad193x codecs have no software reset, we have to reinitialize the
registers after a hardware reset. For example, if we change the
device-tree between these resets, changing the audio format of the DAI link
from DSP_A with 8 TDM channels to I2S 2 channels, DAC Control 1 register
will remain configured for 8 channels. This patch resets this register at
probe to its default value.

Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu@microchip.com>
---
 sound/soc/codecs/ad193x.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/sound/soc/codecs/ad193x.c b/sound/soc/codecs/ad193x.c
index 3ebc0524f4b2..cda435562a1d 100644
--- a/sound/soc/codecs/ad193x.c
+++ b/sound/soc/codecs/ad193x.c
@@ -427,6 +427,8 @@ static int ad193x_component_probe(struct snd_soc_component *component)
 	regmap_write(ad193x->regmap, AD193X_DAC_CTRL2, 0x1A);
 	/* dac in tdm mode */
 	regmap_write(ad193x->regmap, AD193X_DAC_CTRL0, 0x40);
+	/* reset DAC ctrl1 */
+	regmap_write(ad193x->regmap, AD193X_DAC_CTRL1, 0x00);
 
 	/* adc only */
 	if (ad193x_has_adc(ad193x)) {
-- 
2.20.1

  reply	other threads:[~2019-06-26 10:50 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-26 10:49 [PATCH 1/2] ASoC: codecs: ad193x: Fix memory corruption on BE 64b systems Codrin Ciubotariu
2019-06-26 10:49 ` Codrin Ciubotariu
2019-06-26 10:49 ` Codrin Ciubotariu [this message]
2019-06-26 10:49   ` [PATCH 2/2] ASoC: codecs: ad193x: Reset DAC Control 1 register at probe Codrin Ciubotariu
2019-06-26 11:23   ` Mark Brown
2019-06-26 12:16     ` Codrin.Ciubotariu
2019-06-26 12:16       ` Codrin.Ciubotariu
2019-06-26 11:32 ` Applied "ASoC: codecs: ad193x: Fix memory corruption on BE 64b systems" to the asoc tree Mark Brown
2019-06-26 11:32   ` Mark Brown
2019-06-26 12:45 ` [PATCH 1/2] ASoC: codecs: ad193x: Fix memory corruption on BE 64b systems gianluca

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190626104947.26547-2-codrin.ciubotariu@microchip.com \
    --to=codrin.ciubotariu@microchip.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=lars@metafoo.de \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=perex@perex.cz \
    --cc=tiwai@suse.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.