diff mbox series

ASoC: qcom: apq8016_sbc: Fix second argument of apq8016_dai_init()

Message ID 20241117232100.23760-1-spasswolf@web.de
State New
Headers show
Series ASoC: qcom: apq8016_sbc: Fix second argument of apq8016_dai_init() | expand

Commit Message

Bert Karwatzki Nov. 17, 2024, 11:20 p.m. UTC
Since commit a78a42fb48b8 the second argument of apq8016_dai_init() has
to be an lpass id returned by qdsp6_dai_get_lpass_id().

Fixes: a78a42fb48b8 ("ASoC: qcom: apq8016_sbc: Allow routing audio through QDSP6")

Signed-off-by: Bert Karwatzki <spasswolf@web.de>
---
 sound/soc/qcom/apq8016_sbc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--
2.45.2

I came across this while I was trying to adapt this driver to another
sound card.

Bert Karwatzki

Comments

Stephan Gerhold Nov. 21, 2024, 2:11 p.m. UTC | #1
Hi,

On Mon, Nov 18, 2024 at 12:20:58AM +0100, Bert Karwatzki wrote:
> Since commit a78a42fb48b8 the second argument of apq8016_dai_init() has
> to be an lpass id returned by qdsp6_dai_get_lpass_id().
> 
> Fixes: a78a42fb48b8 ("ASoC: qcom: apq8016_sbc: Allow routing audio through QDSP6")
> 
> Signed-off-by: Bert Karwatzki <spasswolf@web.de>
> ---
>  sound/soc/qcom/apq8016_sbc.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/sound/soc/qcom/apq8016_sbc.c b/sound/soc/qcom/apq8016_sbc.c
> index 3023cf180a75..ddfcd4616895 100644
> --- a/sound/soc/qcom/apq8016_sbc.c
> +++ b/sound/soc/qcom/apq8016_sbc.c
> @@ -150,7 +150,7 @@ static int apq8016_sbc_dai_init(struct snd_soc_pcm_runtime *rtd)
>  {
>  	struct snd_soc_dai *cpu_dai = snd_soc_rtd_to_cpu(rtd, 0);
> 
> -	return apq8016_dai_init(rtd, cpu_dai->id);
> +	return apq8016_dai_init(rtd, qdsp6_dai_get_lpass_id(cpu_dai));
>  }
> 

Hm no, the code is correct the way it is. There are two cases handled by
this driver:

 - ADSP bypass (lpass-* drivers, qcom,apq8016-sbc-sndcard): This one
   uses the LPASS IDs as DAI IDs, so cpu_dai->id already contains the
   correct value.

 - ADSP (qdsp6 drivers, qcom,msm8916-qdsp6-sndcard): This one uses the
   QDSP6 IDs (e.g. PRIMARY_MI2S_RX/TX instead of MI2S_PRIMARY), so
   qdsp6_dai_get_lpass_id() is used to translate that to the LPASS IDs.

The code you are changing here handles the first case (ADSP bypass),
the DAI IDs do not need any translation there.

Thanks,
Stephan
diff mbox series

Patch

diff --git a/sound/soc/qcom/apq8016_sbc.c b/sound/soc/qcom/apq8016_sbc.c
index 3023cf180a75..ddfcd4616895 100644
--- a/sound/soc/qcom/apq8016_sbc.c
+++ b/sound/soc/qcom/apq8016_sbc.c
@@ -150,7 +150,7 @@  static int apq8016_sbc_dai_init(struct snd_soc_pcm_runtime *rtd)
 {
 	struct snd_soc_dai *cpu_dai = snd_soc_rtd_to_cpu(rtd, 0);

-	return apq8016_dai_init(rtd, cpu_dai->id);
+	return apq8016_dai_init(rtd, qdsp6_dai_get_lpass_id(cpu_dai));
 }

 static void apq8016_sbc_add_ops(struct snd_soc_card *card)