> > + 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), SSP_CONFIG_DATA(SSP, 0, 24, 0, 0, 0, SSP_CC_BCLK_ES)))') Regards, Brent