The current implementation does not configure the CPU DAI format for
MI2S interfaces, resulting in -EIO errors during audio playback and
capture. This prevents the correct clock from being enabled for the
MI2S interface. Configure the required DAI format to enable proper
clock settings. Tested on Lemans evk platform.
Fixes: 295aeea6646ad ("ASoC: qcom: add machine driver for sc8280xp")
Cc: <stable@vger.kernel.org>
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>
---
sound/soc/qcom/sc8280xp.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/sound/soc/qcom/sc8280xp.c b/sound/soc/qcom/sc8280xp.c
index 73f9f82c4e25..3067b95bcdbb 100644
--- a/sound/soc/qcom/sc8280xp.c
+++ b/sound/soc/qcom/sc8280xp.c
@@ -32,6 +32,10 @@ static int sc8280xp_snd_init(struct snd_soc_pcm_runtime *rtd)
int dp_pcm_id = 0;
switch (cpu_dai->id) {
+ case PRIMARY_MI2S_RX...QUATERNARY_MI2S_TX:
+ case QUINARY_MI2S_RX...QUINARY_MI2S_TX:
+ snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_BP_FP);
+ break;
case WSA_CODEC_DMA_RX_0:
case WSA_CODEC_DMA_RX_1:
/*
--
2.34.1
On 9/5/25 4:04 PM, Mohammad Rafi Shaik wrote: > The current implementation does not configure the CPU DAI format for > MI2S interfaces, resulting in -EIO errors during audio playback and > capture. This prevents the correct clock from being enabled for the > MI2S interface. Configure the required DAI format to enable proper > clock settings. Tested on Lemans evk platform. > > Fixes: 295aeea6646ad ("ASoC: qcom: add machine driver for sc8280xp") Am really not sure if this is a fix, because sc8280xp does not have any Mi2S support. If you have added support for MI2S on any other platform that uses sc8280xp machine driver, then that is the right fixes tag. --srini > Cc: <stable@vger.kernel.org> > Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com> > Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com> > --- > sound/soc/qcom/sc8280xp.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/sound/soc/qcom/sc8280xp.c b/sound/soc/qcom/sc8280xp.c > index 73f9f82c4e25..3067b95bcdbb 100644 > --- a/sound/soc/qcom/sc8280xp.c > +++ b/sound/soc/qcom/sc8280xp.c > @@ -32,6 +32,10 @@ static int sc8280xp_snd_init(struct snd_soc_pcm_runtime *rtd) > int dp_pcm_id = 0; > > switch (cpu_dai->id) { > + case PRIMARY_MI2S_RX...QUATERNARY_MI2S_TX: > + case QUINARY_MI2S_RX...QUINARY_MI2S_TX: > + snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_BP_FP); > + break; > case WSA_CODEC_DMA_RX_0: > case WSA_CODEC_DMA_RX_1: > /*
On 9/7/2025 3:30 PM, Srinivas Kandagatla wrote: > On 9/5/25 4:04 PM, Mohammad Rafi Shaik wrote: >> The current implementation does not configure the CPU DAI format for >> MI2S interfaces, resulting in -EIO errors during audio playback and >> capture. This prevents the correct clock from being enabled for the >> MI2S interface. Configure the required DAI format to enable proper >> clock settings. Tested on Lemans evk platform. >> >> Fixes: 295aeea6646ad ("ASoC: qcom: add machine driver for sc8280xp") > > Am really not sure if this is a fix, because sc8280xp does not have any > Mi2S support. If you have added support for MI2S on any other platform > that uses sc8280xp machine driver, then that is the right fixes tag. > ACK. You're right, thanks for the clarification. I'll update the patch based on the inputs provided. Thanks & Regards, Rafi. > --srini >> Cc: <stable@vger.kernel.org> >> Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com> >> Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com> >> --- >> sound/soc/qcom/sc8280xp.c | 4 ++++ >> 1 file changed, 4 insertions(+) >> >> diff --git a/sound/soc/qcom/sc8280xp.c b/sound/soc/qcom/sc8280xp.c >> index 73f9f82c4e25..3067b95bcdbb 100644 >> --- a/sound/soc/qcom/sc8280xp.c >> +++ b/sound/soc/qcom/sc8280xp.c >> @@ -32,6 +32,10 @@ static int sc8280xp_snd_init(struct snd_soc_pcm_runtime *rtd) >> int dp_pcm_id = 0; >> >> switch (cpu_dai->id) { >> + case PRIMARY_MI2S_RX...QUATERNARY_MI2S_TX: >> + case QUINARY_MI2S_RX...QUINARY_MI2S_TX: >> + snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_BP_FP); >> + break; >> case WSA_CODEC_DMA_RX_0: >> case WSA_CODEC_DMA_RX_1: >> /* >
© 2016 - 2025 Red Hat, Inc.