public inbox for linux-sound@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ASoC: ti: j721e-evm: allocate dai_links with priv
@ 2026-04-27  5:19 Rosen Penev
  2026-04-28  3:58 ` Mark Brown
  0 siblings, 1 reply; 2+ messages in thread
From: Rosen Penev @ 2026-04-27  5:19 UTC (permalink / raw)
  To: linux-sound
  Cc: Peter Ujfalusi, Liam Girdwood, Mark Brown, Jaroslav Kysela,
	Takashi Iwai, open list

Use a flexible array member to combine allocations. Simplifies the code
slightly.

Remove open coding of of_device_get_match_data as well as unnecessary
NULL checks. of_device_get_match_data cannot fail. All compatible
entries have a corresponding data section.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
 sound/soc/ti/j721e-evm.c | 27 ++++++---------------------
 1 file changed, 6 insertions(+), 21 deletions(-)

diff --git a/sound/soc/ti/j721e-evm.c b/sound/soc/ti/j721e-evm.c
index faa62c1a9b8e..cbb10781e042 100644
--- a/sound/soc/ti/j721e-evm.c
+++ b/sound/soc/ti/j721e-evm.c
@@ -74,7 +74,6 @@ struct j721e_audio_domain {
 struct j721e_priv {
 	struct device *dev;
 	struct snd_soc_card card;
-	struct snd_soc_dai_link *dai_links;
 	struct snd_soc_codec_conf codec_conf[J721E_CODEC_CONF_COUNT];
 	struct snd_interval rate_range;
 	const struct j721e_audio_match_data *match_data;
@@ -84,6 +83,7 @@ struct j721e_priv {
 	struct j721e_audio_domain audio_domains[J721E_AUDIO_DOMAIN_LAST];
 
 	struct mutex mutex;
+	struct snd_soc_dai_link dai_links[];
 };
 
 static const struct snd_soc_dapm_widget j721e_cpb_dapm_widgets[] = {
@@ -844,33 +844,18 @@ static int j721e_soc_probe_ivi(struct j721e_priv *priv, int *link_idx,
 
 static int j721e_soc_probe(struct platform_device *pdev)
 {
-	struct device_node *node = pdev->dev.of_node;
+	const struct j721e_audio_match_data *match;
 	struct snd_soc_card *card;
-	const struct of_device_id *match;
 	struct j721e_priv *priv;
 	int link_cnt, conf_cnt, ret, i;
 
-	if (!node) {
-		dev_err(&pdev->dev, "of node is missing.\n");
-		return -ENODEV;
-	}
-
-	match = of_match_node(j721e_audio_of_match, node);
-	if (!match) {
-		dev_err(&pdev->dev, "No compatible match found\n");
-		return -ENODEV;
-	}
-
-	priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL);
+	match = of_device_get_match_data(&pdev->dev);
+	priv = devm_kzalloc(&pdev->dev,
+			struct_size(priv, dai_links, match->num_links), GFP_KERNEL);
 	if (!priv)
 		return -ENOMEM;
 
-	priv->match_data = match->data;
-
-	priv->dai_links = devm_kcalloc(&pdev->dev, priv->match_data->num_links,
-				       sizeof(*priv->dai_links), GFP_KERNEL);
-	if (!priv->dai_links)
-		return -ENOMEM;
+	priv->match_data = match;
 
 	for (i = 0; i < J721E_AUDIO_DOMAIN_LAST; i++)
 		priv->audio_domains[i].parent_clk_id = -1;
-- 
2.54.0


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

* Re: [PATCH] ASoC: ti: j721e-evm: allocate dai_links with priv
  2026-04-27  5:19 [PATCH] ASoC: ti: j721e-evm: allocate dai_links with priv Rosen Penev
@ 2026-04-28  3:58 ` Mark Brown
  0 siblings, 0 replies; 2+ messages in thread
From: Mark Brown @ 2026-04-28  3:58 UTC (permalink / raw)
  To: Rosen Penev
  Cc: linux-sound, Peter Ujfalusi, Liam Girdwood, Jaroslav Kysela,
	Takashi Iwai, open list

[-- Attachment #1: Type: text/plain, Size: 511 bytes --]

On Sun, Apr 26, 2026 at 10:19:53PM -0700, Rosen Penev wrote:

> Remove open coding of of_device_get_match_data as well as unnecessary
> NULL checks. of_device_get_match_data cannot fail. All compatible
> entries have a corresponding data section.

of_device_get_match_data() can fail if there is no match data, for
example because someone is using sysfs to try to instantiate rather than
instantiating from device tree.  There is no reason to take out the
error handling here, it just makes things less robust.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

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

end of thread, other threads:[~2026-04-28  3:58 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-27  5:19 [PATCH] ASoC: ti: j721e-evm: allocate dai_links with priv Rosen Penev
2026-04-28  3:58 ` Mark Brown

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