sound/soc/ti/j721e-evm.c | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-)
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>
---
v2: bring back of_device_get_match_data NULL check.
sound/soc/ti/j721e-evm.c | 22 ++++++----------------
1 file changed, 6 insertions(+), 16 deletions(-)
diff --git a/sound/soc/ti/j721e-evm.c b/sound/soc/ti/j721e-evm.c
index faa62c1a9b8e..be9c363df361 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,23 @@ 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);
+ match = of_device_get_match_data(&pdev->dev);
if (!match) {
dev_err(&pdev->dev, "No compatible match found\n");
return -ENODEV;
}
- priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL);
+ 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
On Tue, 28 Apr 2026 13:47:28 -0700, Rosen Penev wrote:
> ASoC: ti: j721e-evm: allocate dai_links with priv
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-7.2
Thanks!
[1/1] ASoC: ti: j721e-evm: allocate dai_links with priv
https://git.kernel.org/broonie/sound/c/85db411913cb
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
© 2016 - 2026 Red Hat, Inc.