ASoC: dapm: allow muxes to force a disconnect
authorJerome Brunet <jbrunet@baylibre.com>
Wed, 15 May 2019 13:18:55 +0000 (15:18 +0200)
committerMark Brown <broonie@kernel.org>
Thu, 16 May 2019 11:13:23 +0000 (12:13 +0100)
Let soc_dapm_mux_update_power() accept NULL as 'e' enum.

It makes the code a bit more robust and, more importantly, let the calling
mux force a disconnect of the output path if necessary.

This is useful if the dapm elements following the mux must be off
while updating the mux, to avoid glitches or force a (re)configuration.

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Tested-by: Neil Armstrong <narmstrong@baylibre.com>
Tested-by: Kevin Hilman <khilman@baylibre.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/soc-dapm.c

index 81a7a12..a4d6c06 100644 (file)
@@ -2245,7 +2245,7 @@ static int soc_dapm_mux_update_power(struct snd_soc_card *card,
        dapm_kcontrol_for_each_path(path, kcontrol) {
                found = 1;
                /* we now need to match the string in the enum to the path */
-               if (!(strcmp(path->name, e->texts[mux])))
+               if (e && !(strcmp(path->name, e->texts[mux])))
                        connect = true;
                else
                        connect = false;