[alsa-devel] [PATCH] ASoC: Intel: kbl_rt5663_rt5514_max98927: Add dmic format constraint

Yu-Hsuan Hsu yuhsuan at chromium.org
Fri Sep 13 16:45:56 CEST 2019


Thanks for the review! If I'm not mistaken, the microphone is attached to
external codec(rt5514) instead of PCH on Kabylake platform. So there should
be a TDM between DMICs and PCH. We can see in the
kabylake_ssp0_hw_params function,
there are some operations about setting tdm slot_width to 16 bits.
Therefore, I think it only supports S16_LE format for DMICs. Is it correct?

Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com> 於 2019年9月12日 週四
下午9:02寫道:

> On 9/11/19 9:27 PM, Yu-Hsuan Hsu wrote:
> > 24 bits recording from DMIC is not supported for KBL platform because
> > the TDM slot between PCH and codec is 16 bits only. We should add a
> > constraint to remove that unsupported format.
>
> Humm, when you use DMICs they are directly connected to the PCH with a
> standard 1-bit PDM. There is no notion of TDM or slot.
>
> It could very well be that the firmware/topology only support 16 bit (I
> vaguely recall another case where 24 bits was added), but the
> description in the commit message would need to be modified to make the
> reason for this change clearer.
>
> >
> > Signed-off-by: Yu-Hsuan Hsu <yuhsuan at chromium.org>
> > ---
> >   sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c | 3 +++
> >   1 file changed, 3 insertions(+)
> >
> > diff --git a/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
> b/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
> > index 74dda8784f1a01..67b276a65a8d2d 100644
> > --- a/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
> > +++ b/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
> > @@ -400,6 +400,9 @@ static int kabylake_dmic_startup(struct
> snd_pcm_substream *substream)
> >       snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_CHANNELS,
> >                       dmic_constraints);
> >
> > +     runtime->hw.formats = SNDRV_PCM_FMTBIT_S16_LE;
> > +     snd_pcm_hw_constraint_msbits(runtime, 0, 16, 16);
> > +
> >       return snd_pcm_hw_constraint_list(substream->runtime, 0,
> >                       SNDRV_PCM_HW_PARAM_RATE, &constraints_rates);
> >   }
> >
>
>


More information about the Alsa-devel mailing list