[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4208aece-0aea-ba86-9a00-9e217546e1dd@intel.com>
Date: Tue, 2 Aug 2022 12:30:11 +0200
From: Cezary Rojewski <cezary.rojewski@...el.com>
To: Icenowy Zheng <uwu@...nowy.me>
CC: <alsa-devel@...a-project.org>, <linux-kernel@...r.kernel.org>,
Pierre-Louis Bossart <pierre-louis.bossart@...ux.intel.com>,
Liam Girdwood <liam.r.girdwood@...ux.intel.com>,
Peter Ujfalusi <peter.ujfalusi@...ux.intel.com>,
Bard Liao <yung-chuan.liao@...ux.intel.com>,
Ranjani Sridharan <ranjani.sridharan@...ux.intel.com>,
Kai Vehmanen <kai.vehmanen@...ux.intel.com>,
Mark Brown <broonie@...nel.org>,
"Jaroslav Kysela" <perex@...ex.cz>, Takashi Iwai <tiwai@...e.com>
Subject: Re: [PATCH 2/2] ASoC: Intel: Skylake: try to get NHLT blob with PCM
params as fallback
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@...nowy.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;
> }
>
Powered by blists - more mailing lists