[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250410-test-component-tdm-slot-v1-1-9c3a7162fa7a@collabora.com>
Date: Thu, 10 Apr 2025 21:25:32 +0200
From: Nicolas Frattaroli <nicolas.frattaroli@...labora.com>
To: Mark Brown <broonie@...nel.org>,
Kuninori Morimoto <kuninori.morimoto.gx@...esas.com>,
Liam Girdwood <lgirdwood@...il.com>, Jaroslav Kysela <perex@...ex.cz>,
Takashi Iwai <tiwai@...e.com>
Cc: Daniel Baluta <daniel.baluta@...il.com>, linux-sound@...r.kernel.org,
linux-kernel@...r.kernel.org, kernel@...labora.com,
Nicolas Frattaroli <nicolas.frattaroli@...labora.com>
Subject: [PATCH] ASoC: test-component: add set_tdm_slot stub implementation
The test-component driver implements various stub callbacks. One
of the ones it doesn't implement is set_tdm_slot. This has no
functional impact on whether ASoC core believes test-component to
do TDM or not, it just means that any TDM configuration can't
readily be dumped for debugging purposes like it can with the other
callbacks.
Add a stub implementation to allow for this. The output uses dev_info
rather than dev_dbg, to be in line with the set_fmt stub implementation
above.
Signed-off-by: Nicolas Frattaroli <nicolas.frattaroli@...labora.com>
---
Quite unlike how I initially thought the code worked, this stub
implementation of the DAI op isn't actually needed to make ASoC core see
it as a TDM-capable DAI. There's no checking of that sort, it seems. I
mistook a different debug print I added for the test-component output
when I was testing this, which lead me down a stray path about 20 shaved
yaks deep.
Still, the stub implementation is useful to make sure DT properties are
set correctly in e.g. an audio-graph-card, meaning the dai properties
are in the endpoint nodes, which wasn't the case for me. In particular,
I can just swap the compatible of a codec out for a test component with
no changes to the rest of the node and immediately get to see whether
ASoC core sees my devicetree the same way I do.
---
sound/soc/generic/test-component.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/sound/soc/generic/test-component.c b/sound/soc/generic/test-component.c
index 5430d25deaef18700bbefc3f297246fe93945472..89b995987e2d46f58e0cbeb81816d233320edaec 100644
--- a/sound/soc/generic/test-component.c
+++ b/sound/soc/generic/test-component.c
@@ -140,6 +140,15 @@ static int test_dai_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
return 0;
}
+static int test_dai_set_tdm_slot(struct snd_soc_dai *dai,
+ unsigned int tx_mask, unsigned int rx_mask,
+ int slots, int slot_width)
+{
+ dev_info(dai->dev, "set tdm slot: tx_mask=0x%08X, rx_mask=0x%08X, slots=%d, slot_width=%d\n",
+ tx_mask, rx_mask, slots, slot_width);
+ return 0;
+}
+
static int test_dai_mute_stream(struct snd_soc_dai *dai, int mute, int stream)
{
mile_stone(dai);
@@ -203,6 +212,7 @@ static const u64 test_dai_formats =
static const struct snd_soc_dai_ops test_ops = {
.set_fmt = test_dai_set_fmt,
+ .set_tdm_slot = test_dai_set_tdm_slot,
.startup = test_dai_startup,
.shutdown = test_dai_shutdown,
.auto_selectable_formats = &test_dai_formats,
@@ -214,6 +224,7 @@ static const struct snd_soc_dai_ops test_verbose_ops = {
.set_pll = test_dai_set_pll,
.set_clkdiv = test_dai_set_clkdiv,
.set_fmt = test_dai_set_fmt,
+ .set_tdm_slot = test_dai_set_tdm_slot,
.mute_stream = test_dai_mute_stream,
.startup = test_dai_startup,
.shutdown = test_dai_shutdown,
---
base-commit: 64e9fdfc89a76fed38d8ddeed72d42ec71957ed9
change-id: 20250410-test-component-tdm-slot-b44571bc9d22
Best regards,
--
Nicolas Frattaroli <nicolas.frattaroli@...labora.com>
Powered by blists - more mailing lists