The second to last argument is clk_root (root of the clock), however the
code called q6prm_request_lpass_clock() with clk_attr instead
(copy-paste error). This effectively was passing value of 1 as root
clock which worked on some of the SoCs (e.g. SM8450) but fails on
others, depending on the ADSP. For example on SM8550 this "1" as root
clock is not accepted and results in errors coming from ADSP.
Fixes: 2f20640491ed ("ASoC: qdsp6: qdsp6: q6prm: handle clk disable correctly")
Cc: <[email protected]>
Signed-off-by: Krzysztof Kozlowski <[email protected]>
---
sound/soc/qcom/qdsp6/q6prm.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sound/soc/qcom/qdsp6/q6prm.c b/sound/soc/qcom/qdsp6/q6prm.c
index 8aa1a213bfb7..c1dc5bae715a 100644
--- a/sound/soc/qcom/qdsp6/q6prm.c
+++ b/sound/soc/qcom/qdsp6/q6prm.c
@@ -183,9 +183,9 @@ int q6prm_set_lpass_clock(struct device *dev, int clk_id, int clk_attr, int clk_
unsigned int freq)
{
if (freq)
- return q6prm_request_lpass_clock(dev, clk_id, clk_attr, clk_attr, freq);
+ return q6prm_request_lpass_clock(dev, clk_id, clk_attr, clk_root, freq);
- return q6prm_release_lpass_clock(dev, clk_id, clk_attr, clk_attr, freq);
+ return q6prm_release_lpass_clock(dev, clk_id, clk_attr, clk_root, freq);
}
EXPORT_SYMBOL_GPL(q6prm_set_lpass_clock);
--
2.34.1
On 02/03/2023 12:29, Krzysztof Kozlowski wrote:
> The second to last argument is clk_root (root of the clock), however the
> code called q6prm_request_lpass_clock() with clk_attr instead
> (copy-paste error). This effectively was passing value of 1 as root
> clock which worked on some of the SoCs (e.g. SM8450) but fails on
> others, depending on the ADSP. For example on SM8550 this "1" as root
> clock is not accepted and results in errors coming from ADSP.
>
> Fixes: 2f20640491ed ("ASoC: qdsp6: qdsp6: q6prm: handle clk disable correctly")
> Cc: <[email protected]>
> Signed-off-by: Krzysztof Kozlowski <[email protected]>
Nice Find, Tested on sc8280xp
Reviewed-by: Srinivas Kandagatla <[email protected]>
Tested-by: Srinivas Kandagatla <[email protected]>
--srini
> ---
> sound/soc/qcom/qdsp6/q6prm.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/sound/soc/qcom/qdsp6/q6prm.c b/sound/soc/qcom/qdsp6/q6prm.c
> index 8aa1a213bfb7..c1dc5bae715a 100644
> --- a/sound/soc/qcom/qdsp6/q6prm.c
> +++ b/sound/soc/qcom/qdsp6/q6prm.c
> @@ -183,9 +183,9 @@ int q6prm_set_lpass_clock(struct device *dev, int clk_id, int clk_attr, int clk_
> unsigned int freq)
> {
> if (freq)
> - return q6prm_request_lpass_clock(dev, clk_id, clk_attr, clk_attr, freq);
> + return q6prm_request_lpass_clock(dev, clk_id, clk_attr, clk_root, freq);
>
> - return q6prm_release_lpass_clock(dev, clk_id, clk_attr, clk_attr, freq);
> + return q6prm_release_lpass_clock(dev, clk_id, clk_attr, clk_root, freq);
> }
> EXPORT_SYMBOL_GPL(q6prm_set_lpass_clock);
>
On Thu, 02 Mar 2023 13:29:08 +0100, Krzysztof Kozlowski wrote:
> The second to last argument is clk_root (root of the clock), however the
> code called q6prm_request_lpass_clock() with clk_attr instead
> (copy-paste error). This effectively was passing value of 1 as root
> clock which worked on some of the SoCs (e.g. SM8450) but fails on
> others, depending on the ADSP. For example on SM8550 this "1" as root
> clock is not accepted and results in errors coming from ADSP.
>
> [...]
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
Thanks!
[1/1] ASoC: qcom: q6prm: fix incorrect clk_root passed to ADSP
commit: 65882134bc622a1e57bd5928ac588855ea2e3ddd
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark