[PATCH] ASoC: Intel: Skylake: Add alternative topology binary name
Pierre-Louis Bossart
pierre-louis.bossart at linux.intel.com
Wed Mar 25 15:33:44 CET 2020
On 3/25/20 7:22 AM, Mateusz Gorski wrote:
> This commit adds alternative topology binary file name based on used
> machine driver and fallback to use this name after failed attempt to
> load topology file with name based on NHLT.
>
> Signed-off-by: Mateusz Gorski <mateusz.gorski at linux.intel.com>
> ---
> sound/soc/intel/skylake/skl-topology.c | 19 +++++++++++++++++--
> 1 file changed, 17 insertions(+), 2 deletions(-)
>
> diff --git a/sound/soc/intel/skylake/skl-topology.c b/sound/soc/intel/skylake/skl-topology.c
> index 69cd7a81bf2a..344b06df0e15 100644
> --- a/sound/soc/intel/skylake/skl-topology.c
> +++ b/sound/soc/intel/skylake/skl-topology.c
> @@ -3565,8 +3565,20 @@ int skl_tplg_init(struct snd_soc_component *component, struct hdac_bus *bus)
>
> ret = request_firmware(&fw, skl->tplg_name, bus->dev);
> if (ret < 0) {
> - dev_info(bus->dev, "tplg fw %s load failed with %d, falling back to dfw_sst.bin",
> - skl->tplg_name, ret);
> + char alt_tplg_name[64];
> +
> + snprintf(alt_tplg_name, sizeof(alt_tplg_name), "%s-tplg.bin",
> + skl->i2s_dev->name);
That's progress but is this complete?
skl->i2s_dev->name is the name of the machine driver, I don't see the
part where this is modified to deal with the number of dmics?
In your topology patches, the names are: hda_dsp_noDMIC hda_dsp_DMIC_2ch
hda_dsp_DMIC_4ch
How would the relevant file be found based on the number of DMICs on the
platform? I must be missing something here?
> + dev_info(bus->dev, "tplg fw %s load failed with %d, trying alternative tplg name %s",
> + skl->tplg_name, ret, alt_tplg_name);
> +
> + ret = request_firmware(&fw, alt_tplg_name, bus->dev);
> + if (!ret)
> + goto component_load;
> +
> + dev_info(bus->dev, "tplg %s failed with %d, falling back to dfw_sst.bin",
> + alt_tplg_name, ret);
> +
> ret = request_firmware(&fw, "dfw_sst.bin", bus->dev);
> if (ret < 0) {
> dev_err(bus->dev, "Fallback tplg fw %s load failed with %d\n",
> @@ -3575,6 +3587,9 @@ int skl_tplg_init(struct snd_soc_component *component, struct hdac_bus *bus)
> }
> }
>
> +component_load:
> +
> +
> /*
> * The complete tplg for SKL is loaded as index 0, we don't use
> * any other index
>
More information about the Alsa-devel
mailing list