1
0
Fork 0

MLK-19155: ASoC: fsl_rpmsg: fix the volume is low for S24_LE

The format send to M4 through rpmsg is wrong, that make the
driver treat the data as S32_LE, it looks like data is right
shift 8 bit.

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
(cherry picked from commit 508550b70e80339d3d49594ffc23946dd80b0c82)
pull/10/head
Shengjiu Wang 2018-08-08 13:34:33 +08:00 committed by Jason Liu
parent 952614ee98
commit 88b8db3e9f
2 changed files with 2 additions and 3 deletions

View File

@ -192,8 +192,7 @@ static int fsl_rpmsg_i2s_probe(struct platform_device *pdev)
SNDRV_PCM_RATE_192000;
rpmsg_i2s->formats = SNDRV_PCM_FMTBIT_S16_LE |
SNDRV_PCM_FMTBIT_S24_LE |
SNDRV_PCM_FMTBIT_S32_LE |
SNDRV_PCM_FMTBIT_S24_3LE;
SNDRV_PCM_FMTBIT_S32_LE;
fsl_rpmsg_i2s_dai.playback.rates = rpmsg_i2s->rates;
fsl_rpmsg_i2s_dai.playback.formats = rpmsg_i2s->formats;
fsl_rpmsg_i2s_dai.capture.rates = rpmsg_i2s->rates;

View File

@ -61,7 +61,7 @@ static int imx_rpmsg_pcm_hw_params(struct snd_pcm_substream *substream,
if (params_format(params) == SNDRV_PCM_FORMAT_S16_LE)
rpmsg->send_msg.param.format = RPMSG_S16_LE;
else if (params_format(params) == SNDRV_PCM_FORMAT_S24_3LE)
else if (params_format(params) == SNDRV_PCM_FORMAT_S24_LE)
rpmsg->send_msg.param.format = RPMSG_S24_LE;
else
rpmsg->send_msg.param.format = RPMSG_S32_LE;