On 9/24/26 2:24 PM, David Heidelberg via B4 Relay wrote: > From: David Heidelberg <[email protected]> > > Describe the mask with the bits used for each RX/TX. > > Signed-off-by: David Heidelberg <[email protected]>
Reviewed-by: Srinivas Kandagatla <[email protected]> > --- > sound/soc/qcom/sdm845.c | 21 ++++++++++++++------- > 1 file changed, 14 insertions(+), 7 deletions(-) > > diff --git a/sound/soc/qcom/sdm845.c b/sound/soc/qcom/sdm845.c > index 6843ab8ba017e..0ce8265ab1c1f 100644 > --- a/sound/soc/qcom/sdm845.c > +++ b/sound/soc/qcom/sdm845.c > @@ -18,19 +18,24 @@ > #include "sdw.h" > #include "../codecs/rt5663.h" > > #define DRIVER_NAME "sdm845" > #define DEFAULT_SAMPLE_RATE_48K 48000 > #define DEFAULT_MCLK_RATE 24576000 > #define TDM_BCLK_RATE 6144000 > #define MI2S_BCLK_RATE 1536000 > -#define LEFT_SPK_TDM_TX_MASK 0x30 > -#define RIGHT_SPK_TDM_TX_MASK 0xC0 > -#define SPK_TDM_RX_MASK 0x03 > +#define LEFT_SPK_TDM_RX_MASK BIT(0) > +#define RIGHT_SPK_TDM_RX_MASK BIT(1) > +#define SPK_TDM_RX_MASK (LEFT_SPK_TDM_RX_MASK | > RIGHT_SPK_TDM_RX_MASK) > +#define MIC1_TDM_RX_MASK BIT(2) > +#define MIC2_TDM_RX_MASK BIT(3) > +#define MIC_TDM_RX_MASK (MIC1_TDM_RX_MASK | MIC2_TDM_RX_MASK) > +#define LEFT_SPK_TDM_TX_MASK (BIT(4) | BIT(5)) > +#define RIGHT_SPK_TDM_TX_MASK (BIT(6) | BIT(7)) > #define NUM_TDM_SLOTS 8 > #define SLIM_MAX_TX_PORTS 16 > #define SLIM_MAX_RX_PORTS 13 > #define WCD934X_DEFAULT_MCLK_RATE 9600000 > > struct sdm845_snd_data { > struct snd_soc_jack jack; > bool jack_setup; > @@ -107,34 +112,36 @@ static int sdm845_tdm_snd_hw_params(struct > snd_pcm_substream *substream, > default: > dev_err(rtd->dev, "%s: invalid param format 0x%x\n", > __func__, params_format(params)); > return -EINVAL; > } > > channels = params_channels(params); > if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { > - ret = snd_soc_dai_set_tdm_slot(cpu_dai, 0, 0x3, > - 8, slot_width); > + ret = snd_soc_dai_set_tdm_slot(cpu_dai, 0, SPK_TDM_RX_MASK, > + NUM_TDM_SLOTS, slot_width); > if (ret < 0) { > dev_err(rtd->dev, "%s: failed to set tdm slot, > err:%d\n", > __func__, ret); > goto end; > } > > ret = snd_soc_dai_set_channel_map(cpu_dai, 0, NULL, > channels, tdm_slot_offset); > if (ret < 0) { > dev_err(rtd->dev, "%s: failed to set channel map, > err:%d\n", > __func__, ret); > goto end; > } > } else { > - ret = snd_soc_dai_set_tdm_slot(cpu_dai, 0xf, 0, > - 8, slot_width); > + ret = snd_soc_dai_set_tdm_slot(cpu_dai, > + SPK_TDM_RX_MASK | > + MIC_TDM_RX_MASK, 0, > + NUM_TDM_SLOTS, slot_width); > if (ret < 0) { > dev_err(rtd->dev, "%s: failed to set tdm slot, > err:%d\n", > __func__, ret); > goto end; > } > > ret = snd_soc_dai_set_channel_map(cpu_dai, channels, > tdm_slot_offset, 0, NULL); >

