public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Troy Mitchell <troy.mitchell@linux.spacemit.com>
To: Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	 Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
	 Yixun Lan <dlan@kernel.org>,
	Jinmei Wei <weijinmei@linux.spacemit.com>,
	 Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	 Conor Dooley <conor+dt@kernel.org>
Cc: linux-sound@vger.kernel.org, linux-riscv@lists.infradead.org,
	 spacemit@lists.linux.dev, linux-kernel@vger.kernel.org,
	 devicetree@vger.kernel.org,
	 Troy Mitchell <troy.mitchell@linux.spacemit.com>
Subject: [PATCH 1/7] ASoC: spacemit: fix RX DMA params not set when TX is running
Date: Wed, 29 Apr 2026 09:38:46 +0800	[thread overview]
Message-ID: <20260429-k3-i2s-v1-1-2fe99db11ecb@linux.spacemit.com> (raw)
In-Reply-To: <20260429-k3-i2s-v1-0-2fe99db11ecb@linux.spacemit.com>

When TX is already running (SSCR_SSE is set), the hw_params callback
returns early before setting up DMA parameters for the RX stream. This
prevents the capture path from configuring its DMA data properly.

Move the SSCR_SSE check after DMA parameter setup and format
constraints, so both TX and RX streams get their DMA configuration
regardless of whether the hardware is already enabled. The early return
now only skips the register writes that would disrupt an active stream.

Fixes: 955f7b46873e ("ASoC: spacemit: add i2s support for K1 SoC")
Signed-off-by: Troy Mitchell <troy.mitchell@linux.spacemit.com>
---
 sound/soc/spacemit/k1_i2s.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/sound/soc/spacemit/k1_i2s.c b/sound/soc/spacemit/k1_i2s.c
index 1cb99f1abc7c..5c878f02cc93 100644
--- a/sound/soc/spacemit/k1_i2s.c
+++ b/sound/soc/spacemit/k1_i2s.c
@@ -117,10 +117,6 @@ static int spacemit_i2s_hw_params(struct snd_pcm_substream *substream,
 	u32 val;
 	int ret;
 
-	val = readl(i2s->base + SSCR);
-	if (val & SSCR_SSE)
-		return 0;
-
 	dma_data = &i2s->playback_dma_data;
 
 	if (substream->stream == SNDRV_PCM_STREAM_CAPTURE)
@@ -180,6 +176,10 @@ static int spacemit_i2s_hw_params(struct snd_pcm_substream *substream,
 
 	}
 
+	val = readl(i2s->base + SSCR);
+	if (val & SSCR_SSE)
+		return 0;
+
 	val = readl(i2s->base + SSCR);
 	val &= ~SSCR_DW_32BYTE;
 	val |= data_width;

-- 
2.54.0


  reply	other threads:[~2026-04-29  1:39 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-29  1:38 [PATCH 0/7] ASoC: spacemit: bug fixes, refactoring, and K3 SoC support Troy Mitchell
2026-04-29  1:38 ` Troy Mitchell [this message]
2026-04-29  2:28   ` [PATCH 1/7] ASoC: spacemit: fix RX DMA params not set when TX is running Mark Brown
2026-04-29  7:56     ` Troy Mitchell
2026-04-29  2:35   ` Mark Brown
2026-04-29  8:03     ` Troy Mitchell
2026-04-29  1:38 ` [PATCH 2/7] ASoC: spacemit: move hw constraints from hw_params to startup Troy Mitchell
2026-04-29  1:38 ` [PATCH 3/7] ASoC: spacemit: adjust FIFO trigger threshold to half FIFO size Troy Mitchell
2026-04-29  1:38 ` [PATCH 4/7] ASoC: dt-bindings: add SpacemiT K3 SoC compatible Troy Mitchell
2026-05-06  1:40   ` Rob Herring (Arm)
2026-04-29  1:38 ` [PATCH 5/7] ASoC: dt-bindings: add fixed-sample-rate property for SpacemiT K1/K3 Troy Mitchell
2026-04-29  2:18   ` Mark Brown
2026-04-29  8:06     ` Troy Mitchell
2026-04-29  1:38 ` [PATCH 6/7] ASoC: spacemit: add fixed-sample-rate constraint support Troy Mitchell
2026-04-29  1:38 ` [PATCH 7/7] ASoC: spacemit: add K3 SoC support with additional clocks Troy Mitchell
2026-04-29  2:32 ` [PATCH 0/7] ASoC: spacemit: bug fixes, refactoring, and K3 SoC support Mark Brown
2026-04-29  7:58   ` Troy Mitchell
2026-04-29  2:41 ` (subset) " Mark Brown

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=20260429-k3-i2s-v1-1-2fe99db11ecb@linux.spacemit.com \
    --to=troy.mitchell@linux.spacemit.com \
    --cc=broonie@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dlan@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=linux-sound@vger.kernel.org \
    --cc=perex@perex.cz \
    --cc=robh@kernel.org \
    --cc=spacemit@lists.linux.dev \
    --cc=tiwai@suse.com \
    --cc=weijinmei@linux.spacemit.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox