diff options
author | Srinivas Kandagatla <srinivas.kandagatla@linaro.org> | 2023-02-09 12:28:02 +0000 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2023-02-09 14:03:30 +0000 |
commit | dd33c2e7b21d72b151a87b5dafffee2c019043e5 (patch) | |
tree | 4e8828c8d77383679091ba9eefa80b67cd674c14 /sound/soc/qcom/qdsp6 | |
parent | aa759f3f9f4394a3af65ad1772fca6cb9dd9e4cc (diff) | |
download | linux-stable-dd33c2e7b21d72b151a87b5dafffee2c019043e5.tar.gz linux-stable-dd33c2e7b21d72b151a87b5dafffee2c019043e5.tar.bz2 linux-stable-dd33c2e7b21d72b151a87b5dafffee2c019043e5.zip |
ASoC: qcom: audioreach: fix ADSP ready check
currently q6apm_is_adsp_ready() will only return the cached value of
previous result. If we are unlucky and previous result is not-ready
then the caller will always get not-ready flag.
This is not correct, we should query the dsp of its current state in
irrespective of previous reported state.
Fixes: 47bc8cf60e92 ("ASoC: qdsp6: audioreach: Add ADSP ready check")
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20230209122806.18923-5-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/qcom/qdsp6')
-rw-r--r-- | sound/soc/qcom/qdsp6/q6apm.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/sound/soc/qcom/qdsp6/q6apm.c b/sound/soc/qcom/qdsp6/q6apm.c index 8a7dfd27d3c5..994c9e823a88 100644 --- a/sound/soc/qcom/qdsp6/q6apm.c +++ b/sound/soc/qcom/qdsp6/q6apm.c @@ -145,14 +145,6 @@ static void q6apm_put_audioreach_graph(struct kref *ref) kfree(graph); } -bool q6apm_is_adsp_ready(void) -{ - if (g_apm && g_apm->state) - return true; - - return false; -} -EXPORT_SYMBOL_GPL(q6apm_is_adsp_ready); static int q6apm_get_apm_state(struct q6apm *apm) { @@ -169,6 +161,15 @@ static int q6apm_get_apm_state(struct q6apm *apm) return apm->state; } +bool q6apm_is_adsp_ready(void) +{ + if (g_apm) + return q6apm_get_apm_state(g_apm); + + return false; +} +EXPORT_SYMBOL_GPL(q6apm_is_adsp_ready); + static struct audioreach_module *__q6apm_find_module_by_mid(struct q6apm *apm, struct audioreach_graph_info *info, uint32_t mid) |