mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
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: 47bc8cf60e ("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>
This commit is contained in:
committed by
Mark Brown
parent
aa759f3f9f
commit
dd33c2e7b2
@@ -145,14 +145,6 @@ static void q6apm_put_audioreach_graph(struct kref *ref)
|
|||||||
kfree(graph);
|
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)
|
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;
|
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,
|
static struct audioreach_module *__q6apm_find_module_by_mid(struct q6apm *apm,
|
||||||
struct audioreach_graph_info *info,
|
struct audioreach_graph_info *info,
|
||||||
uint32_t mid)
|
uint32_t mid)
|
||||||
|
|||||||
Reference in New Issue
Block a user