]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ASoC: codecs: lpass-wsa-macro: fix path clock dependencies
authorJonathan Marek <jonathan@marek.ca>
Mon, 17 Nov 2025 05:15:16 +0000 (00:15 -0500)
committerMark Brown <broonie@kernel.org>
Thu, 20 Nov 2025 00:11:00 +0000 (00:11 +0000)
"WSA_RX0_CLK",etc. are path clocks, but "WSA RX0",etc. are ports, and there
isn't a correspondence between the ports and paths.
For example "WSA RX0" port could be used by the "RX1 MIX" path.
The problem becomes obvious when RX4,etc. ports are added.

Enabling the path clocks should depend on the path being enabled.

With this fix, the main path clock will be enabled whenever the path is
active: previously using the mix ports only would only activate the mix
path clock and no audio would play.

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Tested-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
Link: https://patch.msgid.link/20251117051523.16462-4-jonathan@marek.ca
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/lpass-wsa-macro.c

index 2e1876b7d66a5a5b2ee560b04503fff4af186b6d..cd36ec59ea2b08b5055facf89bde695186730395 100644 (file)
@@ -2494,10 +2494,8 @@ static const struct snd_soc_dapm_route wsa_audio_map[] = {
        {"WSA RX_MIX0", NULL, "WSA RX_MIX0 MUX"},
        {"WSA RX_MIX1", NULL, "WSA RX_MIX1 MUX"},
 
-       {"WSA RX0", NULL, "WSA_RX0_CLK"},
-       {"WSA RX1", NULL, "WSA_RX1_CLK"},
-       {"WSA RX_MIX0", NULL, "WSA_RX_MIX0_CLK"},
-       {"WSA RX_MIX1", NULL, "WSA_RX_MIX1_CLK"},
+       {"WSA_RX INT0 MIX", NULL, "WSA_RX0_CLK"},
+       {"WSA_RX INT1 MIX", NULL, "WSA_RX1_CLK"},
 
        {"WSA_RX0 INP0", "RX0", "WSA RX0"},
        {"WSA_RX0 INP0", "RX1", "WSA RX1"},
@@ -2527,6 +2525,8 @@ static const struct snd_soc_dapm_route wsa_audio_map[] = {
        {"WSA_RX0 MIX INP", "RX1", "WSA RX1"},
        {"WSA_RX0 MIX INP", "RX_MIX0", "WSA RX_MIX0"},
        {"WSA_RX0 MIX INP", "RX_MIX1", "WSA RX_MIX1"},
+       {"WSA_RX0 MIX INP", NULL, "WSA_RX0_CLK"},
+       {"WSA_RX0 MIX INP", NULL, "WSA_RX_MIX0_CLK"},
        {"WSA_RX INT0 SEC MIX", NULL, "WSA_RX0 MIX INP"},
 
        {"WSA_RX INT0 SEC MIX", NULL, "WSA_RX INT0 MIX"},
@@ -2566,6 +2566,8 @@ static const struct snd_soc_dapm_route wsa_audio_map[] = {
        {"WSA_RX1 MIX INP", "RX1", "WSA RX1"},
        {"WSA_RX1 MIX INP", "RX_MIX0", "WSA RX_MIX0"},
        {"WSA_RX1 MIX INP", "RX_MIX1", "WSA RX_MIX1"},
+       {"WSA_RX1 MIX INP", NULL, "WSA_RX1_CLK"},
+       {"WSA_RX1 MIX INP", NULL, "WSA_RX_MIX1_CLK"},
        {"WSA_RX INT1 SEC MIX", NULL, "WSA_RX1 MIX INP"},
 
        {"WSA_RX INT1 SEC MIX", NULL, "WSA_RX INT1 MIX"},