[PATCH 2/2] ASoC: Intel: Skylake: try to get NHLT blob with PCM params as fallback

Icenowy Zheng uwu at icenowy.me
Sun Aug 7 19:26:48 CEST 2022


在 2022-08-02星期二的 12:30 +0200,Cezary Rojewski写道:
> On 2022-07-25 1:10 PM, Icenowy Zheng wrote:
> > Switching to use pipeline parameters to get NHLT blob breaks audio
> > on
> > HP Chromebook 13 G1 (at least with MrChromeBox firmware).
> > 
> > Fix this by retrying to get NHLT blob with PCM parameters (which is
> > the
> > old behavior) if pipeline parameters fail.
> > 
> > Fixes: 87b265260046 ("ASoC: Intel: Skylake: Select proper format
> > for NHLT blob")
> > Signed-off-by: Icenowy Zheng <uwu at icenowy.me>
> 
> Hello,
> 
> 
> Could you share the NHLT file from your platform plus the format used
> by 
> the cras/userspace tool? Did you try playing over simple aplay tool
> instead?

I tried 48000Hz 2ch 32bit with speaker-test.

Attached is /sys/firmware/acpi/tables/NHLT.

> 
> 
> >   sound/soc/intel/skylake/skl-topology.c | 11 +++++++++++
> >   1 file changed, 11 insertions(+)
> > 
> > diff --git a/sound/soc/intel/skylake/skl-topology.c
> > b/sound/soc/intel/skylake/skl-topology.c
> > index 19994ec8bba1..3d5a3ee1c82c 100644
> > --- a/sound/soc/intel/skylake/skl-topology.c
> > +++ b/sound/soc/intel/skylake/skl-topology.c
> > @@ -1858,6 +1858,15 @@ static int
> > skl_tplg_be_fill_pipe_params(struct snd_soc_dai *dai,
> >                                         pipe_fmt->bps, params-
> > >s_cont,
> >                                         pipe_fmt->channels,
> > pipe_fmt->freq,
> >                                         pipe->direction, dev_type);
> > +       if (!cfg) {
> > +               /* Retry with PCM parameters, as the old behavior
> > */
> 
> Drop the "old behavior" - most of the readers are not aware of what
> that 
> actually means.
> 
> > +               cfg = intel_nhlt_get_endpoint_blob(dai->dev, skl-
> > >nhlt,
> > +                                               mconfig->vbus_id,
> > link_type,
> > +                                               params->s_fmt,
> > params->s_cont,
> > +                                               params->ch, params-
> > >s_freq,
> > +                                               params->stream,
> > dev_type);
> > +       }
> > +
> >         if (cfg) {
> >                 mconfig->formats_config[SKL_PARAM_INIT].caps_size =
> > cfg->size;
> >                 mconfig->formats_config[SKL_PARAM_INIT].caps = (u32
> > *)&cfg->caps;
> > @@ -1866,6 +1875,8 @@ static int
> > skl_tplg_be_fill_pipe_params(struct snd_soc_dai *dai,
> >                         mconfig->vbus_id, link_type, params-
> > >stream,
> >                         pipe_fmt->channels, pipe_fmt->freq,
> >                         pipe_fmt->bps);
> > +               dev_err(dai->dev, "PCM: ch %d, freq %d, fmt %d\n",
> > +                       params->ch, params->s_freq, params->s_fmt);
> >                 return -EINVAL;
> >         }
> >   

-------------- next part --------------
A non-text attachment was scrubbed...
Name: NHLT
Type: application/octet-stream
Size: 6736 bytes
Desc: not available
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20220808/4c92a5b0/attachment.obj>


More information about the Alsa-devel mailing list