58 lines
2.1 KiB
Diff
58 lines
2.1 KiB
Diff
From 09b0835977b5fa955e35147513ed770e6bf0229d Mon Sep 17 00:00:00 2001
|
|
From: Charles Keepax <ckeepax@opensource.cirrus.com>
|
|
Date: Mon, 15 Dec 2025 15:36:49 +0000
|
|
Subject: [PATCH 02/17] ASoC: SDCA: Add ASoC jack hookup in class driver
|
|
|
|
Add the necessary calls to the class driver to connect the ASoC jack
|
|
from the machine driver.
|
|
|
|
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
|
|
Link: https://patch.msgid.link/20251215153650.3913117-4-ckeepax@opensource.cirrus.com
|
|
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
|
|
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
---
|
|
sound/soc/sdca/sdca_class_function.c | 13 +++++++++++++
|
|
1 file changed, 13 insertions(+)
|
|
|
|
diff --git a/sound/soc/sdca/sdca_class_function.c b/sound/soc/sdca/sdca_class_function.c
|
|
index 0028482a1e75..416948cfb5cb 100644
|
|
--- a/sound/soc/sdca/sdca_class_function.c
|
|
+++ b/sound/soc/sdca/sdca_class_function.c
|
|
@@ -19,6 +19,7 @@
|
|
#include <sound/sdca_fdl.h>
|
|
#include <sound/sdca_function.h>
|
|
#include <sound/sdca_interrupts.h>
|
|
+#include <sound/sdca_jack.h>
|
|
#include <sound/sdca_regmap.h>
|
|
#include <sound/sdw.h>
|
|
#include <sound/soc-component.h>
|
|
@@ -195,6 +196,15 @@ static int class_function_component_probe(struct snd_soc_component *component)
|
|
return sdca_irq_populate(drv->function, component, core->irq_info);
|
|
}
|
|
|
|
+static int class_function_set_jack(struct snd_soc_component *component,
|
|
+ struct snd_soc_jack *jack, void *d)
|
|
+{
|
|
+ struct class_function_drv *drv = snd_soc_component_get_drvdata(component);
|
|
+ struct sdca_class_drv *core = drv->core;
|
|
+
|
|
+ return sdca_jack_set_jack(core->irq_info, jack);
|
|
+}
|
|
+
|
|
static const struct snd_soc_component_driver class_function_component_drv = {
|
|
.probe = class_function_component_probe,
|
|
.endianness = 1,
|
|
@@ -351,6 +361,9 @@ static int class_function_probe(struct auxiliary_device *auxdev,
|
|
return dev_err_probe(dev, PTR_ERR(drv->regmap),
|
|
"failed to create regmap");
|
|
|
|
+ if (desc->type == SDCA_FUNCTION_TYPE_UAJ)
|
|
+ cmp_drv->set_jack = class_function_set_jack;
|
|
+
|
|
ret = sdca_asoc_populate_component(dev, drv->function, cmp_drv,
|
|
&dais, &num_dais,
|
|
&class_function_sdw_ops);
|
|
--
|
|
2.43.0
|
|
|