[PATCH 6/7] ASoC: Intel: avs: Switch to snd_snd_component_new()
From: Cezary Rojewski
Date: Wed Oct 07 2026 - 09:39:42 EST
snd_soc_component_alloc() leaves the component object in uninitialized
state. Switch to the constructor function to retrieve and operate on
object in sane state.
Signed-off-by: Cezary Rojewski <cezary.rojewski@xxxxxxxxx>
---
sound/soc/intel/avs/pcm.c | 11 +++++------
sound/soc/intel/avs/probes.c | 12 ++++--------
2 files changed, 9 insertions(+), 14 deletions(-)
diff --git a/sound/soc/intel/avs/pcm.c b/sound/soc/intel/avs/pcm.c
index 2d7ced953fde..6dd2b938baaa 100644
--- a/sound/soc/intel/avs/pcm.c
+++ b/sound/soc/intel/avs/pcm.c
@@ -1399,10 +1399,6 @@ int avs_register_component(struct device *dev, const char *name,
if (!acomp)
return -ENOMEM;
- acomp->base = snd_soc_component_alloc(dev);
- if (!acomp->base)
- return -ENOMEM;
-
comp_name = devm_kstrdup(dev, name, GFP_KERNEL);
if (!comp_name)
return -ENOMEM;
@@ -1411,10 +1407,13 @@ int avs_register_component(struct device *dev, const char *name,
drv->use_dai_pcm_id = !obsolete_card_names;
- snd_soc_component_set_name(acomp->base, comp_name);
+ acomp->base = snd_soc_component_new(dev, comp_name, drv);
+ if (IS_ERR(acomp->base))
+ return PTR_ERR(acomp->base);
+
snd_soc_component_set_priv(acomp->base, acomp);
- return snd_soc_register_component(acomp->base, drv, cpu_dais, num_cpu_dais);
+ return snd_soc_component_register(acomp->base, cpu_dais, num_cpu_dais);
}
static struct snd_soc_dai_driver dmic_cpu_dais[] = {
diff --git a/sound/soc/intel/avs/probes.c b/sound/soc/intel/avs/probes.c
index 2e4063b743ba..483e151dfd66 100644
--- a/sound/soc/intel/avs/probes.c
+++ b/sound/soc/intel/avs/probes.c
@@ -298,17 +298,13 @@ int avs_register_probe_component(struct avs_dev *adev, const char *name)
struct snd_soc_component *component;
const char *comp_name;
- component = snd_soc_component_alloc(adev->dev);
- if (!component)
- return -ENOMEM;
-
comp_name = devm_kstrdup(adev->dev, name, GFP_KERNEL);
if (!comp_name)
return -ENOMEM;
- snd_soc_component_set_name(component, comp_name);
+ component = snd_soc_component_new(adev->dev, comp_name, &avs_probe_component_driver);
+ if (IS_ERR(component))
+ return PTR_ERR(component);
- return snd_soc_register_component(component,
- &avs_probe_component_driver,
- probe_cpu_dais, ARRAY_SIZE(probe_cpu_dais));
+ return snd_soc_component_register(component, probe_cpu_dais, ARRAY_SIZE(probe_cpu_dais));
}
--
2.34.1