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
parent
952614ee98
commit
88b8db3e9f
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue