Messages in this thread | | | Date | Tue, 2 Aug 2022 12:30:11 +0200 | Subject | Re: [PATCH 2/2] ASoC: Intel: Skylake: try to get NHLT blob with PCM params as fallback | From | 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@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?
> 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; > } >
| |