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);
> 


Reply via email to