From 99a3ef1e81cd1775bc1f8cc2ad188b1fc755d5cd Mon Sep 17 00:00:00 2001 From: Charles Keepax Date: Mon, 15 Dec 2025 15:36:49 +0000 Subject: [PATCH] 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 Link: https://patch.msgid.link/20251215153650.3913117-4-ckeepax@opensource.cirrus.com Reviewed-by: Bard Liao Signed-off-by: Mark Brown --- 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 0028482a1e752..416948cfb5cb9 100644 --- a/sound/soc/sdca/sdca_class_function.c +++ b/sound/soc/sdca/sdca_class_function.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -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.47.3