]> www.infradead.org Git - users/hch/misc.git/commitdiff
ASoC: renesas: msiof: start DMAC first
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Thu, 28 Aug 2025 02:22:02 +0000 (02:22 +0000)
committerMark Brown <broonie@kernel.org>
Thu, 28 Aug 2025 09:08:28 +0000 (11:08 +0200)
MSIOF needs to start DMAC before starting HW.
It will get unknown error at 1st using without this patch.
Playback: FSERR = 0, FOVF = 0, FUDF = 1
Capture: FSERR = 1, FOVF = 0, FUDF = 0

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Message-ID: <87cy8guqwl.wl-kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/renesas/rcar/msiof.c

index 90ca3357392ebb63be6ad3e65f0f1e88b7a131e9..77e1dadec14d27058ad2d2797360a1bd47d2561c 100644 (file)
@@ -136,6 +136,9 @@ static int msiof_hw_start(struct snd_soc_component *component,
        priv->err_ovf[substream->stream] =
        priv->err_udf[substream->stream] = 0;
 
+       /* Start DMAC */
+       snd_dmaengine_pcm_trigger(substream, cmd);
+
        /* SITMDRx */
        if (is_play) {
                val = SITMDR1_PCON |
@@ -186,9 +189,6 @@ static int msiof_hw_start(struct snd_soc_component *component,
                val = SICTR_RXE | SICTR_REDG;
        msiof_update_and_wait(priv, SICTR, val, val, val);
 
-       /* Start DMAC */
-       snd_dmaengine_pcm_trigger(substream, cmd);
-
        return 0;
 }