ASoC: codecs: lpass: fix the order or clks turn off during suspend
authorSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
Thu, 23 Mar 2023 11:01:25 +0000 (11:01 +0000)
committerMark Brown <broonie@kernel.org>
Thu, 23 Mar 2023 14:04:23 +0000 (14:04 +0000)
commita4a3203426f4b67535d6442ddc5dca8878a0678f
tree70b78fef7d131bdb69f1a2b7d35da325b70c085f
parente38c5e80c3d293a883c6f1d553f2146ec0bda35e
ASoC: codecs: lpass: fix the order or clks turn off during suspend

The order in which clocks are stopped matters as some of the clock
like NPL are derived from MCLK.

Without this patch, Dragonboard RB5 DSP would crash with below error:
 qcom_q6v5_pas 17300000.remoteproc: fatal error received:
 ABT_dal.c:278:ABTimeout: AHB Bus hang is detected,
 Number of bus hang detected := 2 , addr0 = 0x3370000 , addr1 = 0x0!!!

Turn off  fsgen first, followed by npl and then finally mclk, which is exactly
the opposite order of enable sequence.

Fixes: 1dc3459009c3 ("ASoC: codecs: lpass: register mclk after runtime pm")
Reported-by: Amit Pundir <amit.pundir@linaro.org>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Tested-by: Amit Pundir <amit.pundir@linaro.org>
Link: https://lore.kernel.org/r/20230323110125.23790-1-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/lpass-rx-macro.c
sound/soc/codecs/lpass-tx-macro.c
sound/soc/codecs/lpass-wsa-macro.c