OSDN Git Service

ASoC: simple-mux: add read function
authorMaarten Zanders <maarten.zanders@mind.be>
Fri, 28 Oct 2022 19:13:01 +0000 (21:13 +0200)
committerMark Brown <broonie@kernel.org>
Thu, 3 Nov 2022 13:26:14 +0000 (13:26 +0000)
During initialisation DAPM tries to read the state of the MUX
being connected, resulting in this error log:
input-mux: ASoC: error at soc_component_read_no_lock on input-mux: -5

Provide a read function which allows DAPM to read the state of the
MUX.

Signed-off-by: Maarten Zanders <maarten.zanders@mind.be>
Link: https://lore.kernel.org/r/20221028191303.166115-1-maarten.zanders@mind.be
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/simple-mux.c

index d30c0d2..bf67de1 100644 (file)
@@ -55,6 +55,14 @@ static int simple_mux_control_put(struct snd_kcontrol *kcontrol,
                                             e, NULL);
 }
 
+static unsigned int simple_mux_read(struct snd_soc_component *component,
+                                   unsigned int reg)
+{
+       struct simple_mux *priv = snd_soc_component_get_drvdata(component);
+
+       return priv->mux;
+}
+
 static const struct snd_kcontrol_new simple_mux_mux =
        SOC_DAPM_ENUM_EXT("Muxer", simple_mux_enum, simple_mux_control_get, simple_mux_control_put);
 
@@ -76,6 +84,7 @@ static const struct snd_soc_component_driver simple_mux_component_driver = {
        .num_dapm_widgets       = ARRAY_SIZE(simple_mux_dapm_widgets),
        .dapm_routes            = simple_mux_dapm_routes,
        .num_dapm_routes        = ARRAY_SIZE(simple_mux_dapm_routes),
+       .read                   = simple_mux_read,
 };
 
 static int simple_mux_probe(struct platform_device *pdev)