[d-kernel] [PATCH 4/7] ASoC: Intel: add UCM component for es8336 headset mic + Dmic inverse topology
kovalev на altlinux.org
kovalev на altlinux.org
Ср Дек 6 19:44:10 MSK 2023
From: Vasiliy Kovalev <kovalev на altlinux.org>
Signed-off-by: Vasiliy Kovalev <kovalev на altlinux.org>
---
sound/soc/intel/boards/sof_es8336.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/sound/soc/intel/boards/sof_es8336.c b/sound/soc/intel/boards/sof_es8336.c
index 233a1fc878fe96..51caf5e622b079 100644
--- a/sound/soc/intel/boards/sof_es8336.c
+++ b/sound/soc/intel/boards/sof_es8336.c
@@ -50,6 +50,7 @@
#define SOF_ES8336_JD_INVERTED BIT(6)
#define SOF_ES8336_HEADPHONE_GPIO BIT(7)
#define SOC_ES8336_HEADSET_MIC1 BIT(8)
+#define SOC_ES8336_HEADSET_MIC_INV BIT(21)
static unsigned long quirk;
@@ -607,7 +608,7 @@ static struct snd_soc_dai_link *sof_card_dai_links_create(struct device *dev,
return NULL;
}
-static char soc_components[30];
+static char soc_components[40];
/* i2c-<HID>:00 with HID being 8 chars */
static char codec_name[SND_ACPI_I2C_ID_LEN];
@@ -711,6 +712,13 @@ static int sof_es8336_probe(struct platform_device *pdev)
snprintf(soc_components, sizeof(soc_components), "spk:ES83%d6",
strstr(codec_name, "ESSX8326")? 2 : 1);
+ /* for inverse topology Dmic + HeadsetMic */
+ if (quirk & SOC_ES8336_HEADSET_MIC_INV) {
+ char hmic_component[10];
+ snprintf(hmic_component, sizeof(hmic_component), " hmic-inv");
+ strcat(soc_components,hmic_component);
+ }
+
codec_dev = acpi_get_first_physical_node(adev);
acpi_dev_put(adev);
if (!codec_dev)
--
2.33.8
Подробная информация о списке рассылки devel-kernel