--- Begin Message ---
- To: Shengjiu Wang <shengjiu.wang@xxxxxxxxx>, Xiubo Li <Xiubo.Lee@xxxxxxxxx>, Fabio Estevam <festevam@xxxxxxxxx>, Nicolin Chen <nicoleotsuka@xxxxxxxxx>, Liam Girdwood <lgirdwood@xxxxxxxxx>, Mark Brown <broonie@xxxxxxxxxx>, Jaroslav Kysela <perex@xxxxxxxx>, Takashi Iwai <tiwai@xxxxxxxx>
- Subject: [PATCH] ASoC: fsl_sai: Use physical format width
- From: Emil Abildgaard Svendsen <EMAS@xxxxxxxxxxxxxxx>
- Date: Thu, 30 Mar 2023 08:30:55 +0000
- Cc: Emil Abildgaard Svendsen <EMAS@xxxxxxxxxxxxxxx>, "alsa-devel@xxxxxxxxxxxxxxxx" <alsa-devel@xxxxxxxxxxxxxxxx>, "linuxppc-dev@xxxxxxxxxxxxxxxx" <linuxppc-dev@xxxxxxxxxxxxxxxx>
Slot width should follow the physical width of the format instead of the
data width.
This is needed for formats like SNDRV_PCM_FMTBIT_S24_LE where physical
width is 32 and data width is 24. By using the physical width, data
won't get misaligned.
Signed-off-by: Emil Svendsen <emas@xxxxxxxxxxxxxxx>
---
sound/soc/fsl/fsl_sai.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/soc/fsl/fsl_sai.c b/sound/soc/fsl/fsl_sai.c
index 939c6bdd22c4..213e2d462076 100644
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
@@ -519,13 +519,13 @@ static int fsl_sai_hw_params(struct snd_pcm_substream *substream,
unsigned int channels = params_channels(params);
struct snd_dmaengine_dai_dma_data *dma_params;
struct fsl_sai_dl_cfg *dl_cfg = sai->dl_cfg;
+ u32 slot_width = params_physical_width(params);
u32 word_width = params_width(params);
int trce_mask = 0, dl_cfg_idx = 0;
int dl_cfg_cnt = sai->dl_cfg_cnt;
u32 dl_type = FSL_SAI_DL_I2S;
u32 val_cr4 = 0, val_cr5 = 0;
u32 slots = (channels == 1) ? 2 : channels;
- u32 slot_width = word_width;
int adir = tx ? RX : TX;
u32 pins, bclk;
u32 watermark;
--
2.34.1
--- End Message ---