lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ