Re: [PATCH] ASoC: wm8962: add .set_tdm_slot callback function
From: Shengjiu Wang
Date: Tue Jan 27 2026 - 08:01:42 EST
On Tue, Jan 27, 2026 at 7:03 PM Charles Keepax
<ckeepax@xxxxxxxxxxxxxxxxxxxxx> wrote:
>
> On Tue, Jan 27, 2026 at 06:33:26PM +0800, Shengjiu Wang wrote:
> > The slot_width can be different with the params_width(), for example,
> > DSP_A mode, slot_width = 32, but data format is S16_LE, if the word
> > length is configured to be 16, there is no sound on the right speaker.
> >
> > So add .set_tdm_slot() callback function to configure the slot_width and
> > update the word length according to slot_width in hw_params().
> >
> > Signed-off-by: Shengjiu Wang <shengjiu.wang@xxxxxxx>
> > ---
> > +static int wm8962_set_tdm_slot(struct snd_soc_dai *dai, unsigned int tx_mask,
> > + unsigned int rx_mask, int slots, int slot_width)
> > +{
> > + struct snd_soc_component *component = dai->component;
> > + struct wm8962_priv *wm8962 = snd_soc_component_get_drvdata(component);
> > +
> > + if (slots <= 0 || slot_width <= 0)
> > + return 0;
>
> You probably shouldn't bail out here, how does one disable TDM if
> it is no longer required?
Should we add some checks for the slots and slot_width here?
or just remove these two lines?
Best regards
Shengjiu Wang
>
> I think the rest looks good.
>
> Thanks,
> Charles