 
            
            
            
            
                28 Sep
                
                    2022
                
            
            
                28 Sep
                
                '22
                
            
            
            
        
    
                10:38 a.m.
            
        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