[d-kernel] [PATCH 1/7] ASoC: Intel: update strategy UCM components for es8336 driver
kovalev на altlinux.org
kovalev на altlinux.org
Ср Дек 6 19:44:07 MSK 2023
From: Vasiliy Kovalev <kovalev на altlinux.org>
UCM configuration files differ for the sof-essx8336 driver
(es8316 and es8326 codecs are serviced) and to select the
desired config, add a component to the driver.
Signed-off-by: Vasiliy Kovalev <kovalev на altlinux.org>
---
sound/soc/intel/boards/sof_es8336.c | 23 ++++++++++++++---------
1 file changed, 14 insertions(+), 9 deletions(-)
diff --git a/sound/soc/intel/boards/sof_es8336.c b/sound/soc/intel/boards/sof_es8336.c
index 6b8b4596e62e92..ee52004e88d329 100644
--- a/sound/soc/intel/boards/sof_es8336.c
+++ b/sound/soc/intel/boards/sof_es8336.c
@@ -658,8 +658,10 @@ static int sof_es8336_probe(struct platform_device *pdev)
}
log_quirks(dev);
- if (quirk & SOF_ES8336_ENABLE_DMIC)
+ if (quirk & SOF_ES8336_ENABLE_DMIC) {
dmic_be_num = 2;
+ mach->mach_params.dmic_num = 2;
+ }
/* compute number of dai links */
sof_es8336_card.num_links = 1 + dmic_be_num + hdmi_num;
@@ -687,11 +689,9 @@ static int sof_es8336_probe(struct platform_device *pdev)
return -ENXIO;
}
- card->components = devm_kasprintf(dev, GFP_KERNEL, "spk:es83%d6",
- strstr(codec_name, "ESSX8326")
- ? 1 : 2);
- if (!card->components)
- return -ENOMEM;
+ /* add component for alsa UCM */
+ snprintf(soc_components, sizeof(soc_components), "spk:ES83%d6",
+ strstr(codec_name, "ESSX8326")? 2 : 1);
codec_dev = acpi_get_first_physical_node(adev);
acpi_dev_put(adev);
@@ -762,11 +762,16 @@ static int sof_es8336_probe(struct platform_device *pdev)
snd_soc_card_set_drvdata(card, priv);
if (mach->mach_params.dmic_num > 0) {
- snprintf(soc_components, sizeof(soc_components),
- "cfg-dmics:%d", mach->mach_params.dmic_num);
- card->components = soc_components;
+ char dmic_component[15];
+ snprintf(dmic_component, sizeof(dmic_component),
+ " cfg-dmics:%d", mach->mach_params.dmic_num);
+ strcat(soc_components,dmic_component);
}
+ card->components = soc_components;
+ if (!card->components)
+ return -ENOMEM;
+
ret = devm_snd_soc_register_card(dev, card);
if (ret) {
gpiod_put(priv->gpio_speakers);
--
2.33.8
Подробная информация о списке рассылки devel-kernel