Re: [PATCH] ASoC: fsl_sai: Use physical format width

From
Shengjiu Wang <shengjiu.wang@gmail.com>
Date
2023-03-31 05:22:06
Also in
alsa-devel
Reply to
Emil Abildgaard Svendsen, 2023-03-30
On Thu, Mar 30, 2023 at 4:30 PM Emil Abildgaard Svendsen <
EMAS@bang-olufsen.dk> wrote:
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.

There are different requirements for this slot width. Some need physical
width,
Some need format width. We need to be careful about change here.

Actually there is .set_tdm_slot API for slot specific setting, please use
this API.

best regards
wang shengjiu
quoted hunk ↗ jump to hunk
Signed-off-by: Emil Svendsen <redacted>
---
 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
Thread (5 messages) 5 messages, 3 authors, last reply 2023-04-03
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help