Message ID | 20201119123145.709891-1-dmitry.baryshkov@linaro.org |
---|---|
State | Accepted |
Commit | ddf1c4b3944add7939f6778d8fb71df01e74d45f |
Headers | show |
Series | ASoC: qcom: sm8250: fix HDMI audio playback | expand |
On 19/11/2020 12:31, Dmitry Baryshkov wrote: > Current code does not setup CPU dai (causing -EIO errors on playback) > and does not pass SND_SOC_DAIFMT_I2S to codec fmt (causing i2s-hifi > errors). Fix both errors to enable HDMI audio playback on SM8250. Tested > on RB5 platform. > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > Fixes: aa2e2785545a ("ASoC: qcom: sm8250: add sound card qrb5165-rb5 support") > Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Thanks for the Patch, Looks good to me! Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> > --- > sound/soc/qcom/sm8250.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/sound/soc/qcom/sm8250.c b/sound/soc/qcom/sm8250.c > index 35c9ad11edff..314e3e566d6d 100644 > --- a/sound/soc/qcom/sm8250.c > +++ b/sound/soc/qcom/sm8250.c > @@ -36,6 +36,7 @@ static int sm8250_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd, > > static int sm8250_snd_startup(struct snd_pcm_substream *substream) > { > + unsigned int fmt = SND_SOC_DAIFMT_CBS_CFS; > unsigned int codec_dai_fmt = SND_SOC_DAIFMT_CBS_CFS; > struct snd_soc_pcm_runtime *rtd = substream->private_data; > struct snd_soc_dai *cpu_dai = asoc_rtd_to_cpu(rtd, 0); > @@ -43,10 +44,11 @@ static int sm8250_snd_startup(struct snd_pcm_substream *substream) > > switch (cpu_dai->id) { > case TERTIARY_MI2S_RX: > - codec_dai_fmt |= SND_SOC_DAIFMT_NB_NF; > + codec_dai_fmt |= SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_I2S; > snd_soc_dai_set_sysclk(cpu_dai, > Q6AFE_LPASS_CLK_ID_TER_MI2S_IBIT, > MI2S_BCLK_RATE, SNDRV_PCM_STREAM_PLAYBACK); > + snd_soc_dai_set_fmt(cpu_dai, fmt); > snd_soc_dai_set_fmt(codec_dai, codec_dai_fmt); > break; > default: >
diff --git a/sound/soc/qcom/sm8250.c b/sound/soc/qcom/sm8250.c index 35c9ad11edff..314e3e566d6d 100644 --- a/sound/soc/qcom/sm8250.c +++ b/sound/soc/qcom/sm8250.c @@ -36,6 +36,7 @@ static int sm8250_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd, static int sm8250_snd_startup(struct snd_pcm_substream *substream) { + unsigned int fmt = SND_SOC_DAIFMT_CBS_CFS; unsigned int codec_dai_fmt = SND_SOC_DAIFMT_CBS_CFS; struct snd_soc_pcm_runtime *rtd = substream->private_data; struct snd_soc_dai *cpu_dai = asoc_rtd_to_cpu(rtd, 0); @@ -43,10 +44,11 @@ static int sm8250_snd_startup(struct snd_pcm_substream *substream) switch (cpu_dai->id) { case TERTIARY_MI2S_RX: - codec_dai_fmt |= SND_SOC_DAIFMT_NB_NF; + codec_dai_fmt |= SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_I2S; snd_soc_dai_set_sysclk(cpu_dai, Q6AFE_LPASS_CLK_ID_TER_MI2S_IBIT, MI2S_BCLK_RATE, SNDRV_PCM_STREAM_PLAYBACK); + snd_soc_dai_set_fmt(cpu_dai, fmt); snd_soc_dai_set_fmt(codec_dai, codec_dai_fmt); break; default:
Current code does not setup CPU dai (causing -EIO errors on playback) and does not pass SND_SOC_DAIFMT_I2S to codec fmt (causing i2s-hifi errors). Fix both errors to enable HDMI audio playback on SM8250. Tested on RB5 platform. Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Fixes: aa2e2785545a ("ASoC: qcom: sm8250: add sound card qrb5165-rb5 support") Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> --- sound/soc/qcom/sm8250.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)