public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] ASoC: max98088: fix dai1/2_hw_params access
@ 2022-12-13  9:53 Rouven Czerwinski
  2022-12-13  9:53 ` [PATCH 2/2] ASoC: max98088: fix initial dai mute state Rouven Czerwinski
  2022-12-13 12:04 ` [PATCH 1/2] ASoC: max98088: fix dai1/2_hw_params access Mark Brown
  0 siblings, 2 replies; 6+ messages in thread
From: Rouven Czerwinski @ 2022-12-13  9:53 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai
  Cc: kernel, Marco Felsch, alsa-devel, linux-kernel

From: Marco Felsch <m.felsch@pengutronix.de>

According the reference manuals [1], [2] updating register 0x14/1c
should only be done after #shdn bit is set to 0.

[1] https://datasheets.maximintegrated.com/en/ds/MAX98089.pdf
[2] https://datasheets.maximintegrated.com/en/ds/MAX98088.pdf

Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
---
 sound/soc/codecs/max98088.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/sound/soc/codecs/max98088.c b/sound/soc/codecs/max98088.c
index 405ec16be2b6..7f108e147355 100644
--- a/sound/soc/codecs/max98088.c
+++ b/sound/soc/codecs/max98088.c
@@ -977,6 +977,8 @@ static int max98088_dai1_hw_params(struct snd_pcm_substream *substream,
 
        rate = params_rate(params);
 
+       snd_soc_component_update_bits(component, M98088_REG_51_PWR_SYS, M98088_SHDNRUN, 0);
+
        switch (params_width(params)) {
        case 16:
                snd_soc_component_update_bits(component, M98088_REG_14_DAI1_FORMAT,
@@ -990,8 +992,6 @@ static int max98088_dai1_hw_params(struct snd_pcm_substream *substream,
                return -EINVAL;
        }
 
-       snd_soc_component_update_bits(component, M98088_REG_51_PWR_SYS, M98088_SHDNRUN, 0);
-
        if (rate_value(rate, &regval))
                return -EINVAL;
 
@@ -1047,6 +1047,8 @@ static int max98088_dai2_hw_params(struct snd_pcm_substream *substream,
 
        rate = params_rate(params);
 
+       snd_soc_component_update_bits(component, M98088_REG_51_PWR_SYS, M98088_SHDNRUN, 0);
+
        switch (params_width(params)) {
        case 16:
                snd_soc_component_update_bits(component, M98088_REG_1C_DAI2_FORMAT,
@@ -1060,8 +1062,6 @@ static int max98088_dai2_hw_params(struct snd_pcm_substream *substream,
                return -EINVAL;
        }
 
-       snd_soc_component_update_bits(component, M98088_REG_51_PWR_SYS, M98088_SHDNRUN, 0);
-
        if (rate_value(rate, &regval))
                return -EINVAL;
 
-- 
2.38.1


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

end of thread, other threads:[~2022-12-15 12:01 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-12-13  9:53 [PATCH 1/2] ASoC: max98088: fix dai1/2_hw_params access Rouven Czerwinski
2022-12-13  9:53 ` [PATCH 2/2] ASoC: max98088: fix initial dai mute state Rouven Czerwinski
2022-12-13 12:01   ` Mark Brown
2022-12-15  9:17     ` Marco Felsch
2022-12-15 12:00       ` Mark Brown
2022-12-13 12:04 ` [PATCH 1/2] ASoC: max98088: fix dai1/2_hw_params access Mark Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox