On 9/27/22 15:16, Lu, Brent wrote: >>> + case SND_SOC_DAIFMT_DSP_A: >>> + case SND_SOC_DAIFMT_DSP_B: >>> + /* 4-slot TDM */ >>> + ret = snd_soc_dai_set_tdm_slot(codec_dai, >>> + rt1015_tdm_mask[i].tx, >>> + rt1015_tdm_mask[i].rx, >>> + 4, >>> + params_width(params)); >> >> The changes look ok, just wondering if we can avoid hard-coding those 4 values. >> Can we not get the number of TDM slots from topology and/or dailink >> configuration? >> >> > > I think TDM slot number is possible but not TX/RX mask. What we have in topology > is union of tx/rx mask of all channels. We don't know the mask of specific channel in > DAI_CONFIG. > > DAI_CONFIG(SSP, 0, BOARD_HP_BE_ID, SSP0-Codec, > SSP_CONFIG(I2S, SSP_CLOCK(mclk, 19200000, codec_mclk_in), > SSP_CLOCK(bclk, 2400000, codec_slave), > SSP_CLOCK(fsync, 48000, codec_slave), > SSP_TDM(2, 25, 3, 3), the 3 3 is precisely the channel mask! > SSP_CONFIG_DATA(SSP, 0, 24, 0, 0, 0, SSP_CC_BCLK_ES)))') > > Regards, > Brent >