ASoC: SOF: sof-pci-dev: add parameter to override topology filename
[ Upstream commit 772627acfeb0e670ede534b7d5502dae9668d3ee ] The existing 'tplg_path' module parameter can be used to load alternate firmware files, be it for development or to handle OEM-specific or board-specific releases. However the topology filename is either hard-coded in machine descriptors or modified by specific DMI-quirks. For additional flexibility, this patch adds the 'tplg_filename' module parameter to override topology names. To avoid any confusion between DMI- and parameter-override, a variable rename is added. Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com> Reviewed-by: Paul Olaru <paul.olaru@oss.nxp.com> Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com> Link: https://lore.kernel.org/r/20220414184817.362215-7-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org> Stable-dep-of: 7dd692217b86 ("ASoC: SOF: sof-pci-dev: Fix community key quirk detection") Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
4aeb3320d7
commit
3a79fcb743
@@ -31,17 +31,21 @@ static char *tplg_path;
|
|||||||
module_param(tplg_path, charp, 0444);
|
module_param(tplg_path, charp, 0444);
|
||||||
MODULE_PARM_DESC(tplg_path, "alternate path for SOF topology.");
|
MODULE_PARM_DESC(tplg_path, "alternate path for SOF topology.");
|
||||||
|
|
||||||
|
static char *tplg_filename;
|
||||||
|
module_param(tplg_filename, charp, 0444);
|
||||||
|
MODULE_PARM_DESC(tplg_filename, "alternate filename for SOF topology.");
|
||||||
|
|
||||||
static int sof_pci_debug;
|
static int sof_pci_debug;
|
||||||
module_param_named(sof_pci_debug, sof_pci_debug, int, 0444);
|
module_param_named(sof_pci_debug, sof_pci_debug, int, 0444);
|
||||||
MODULE_PARM_DESC(sof_pci_debug, "SOF PCI debug options (0x0 all off)");
|
MODULE_PARM_DESC(sof_pci_debug, "SOF PCI debug options (0x0 all off)");
|
||||||
|
|
||||||
static const char *sof_override_tplg_name;
|
static const char *sof_dmi_override_tplg_name;
|
||||||
|
|
||||||
#define SOF_PCI_DISABLE_PM_RUNTIME BIT(0)
|
#define SOF_PCI_DISABLE_PM_RUNTIME BIT(0)
|
||||||
|
|
||||||
static int sof_tplg_cb(const struct dmi_system_id *id)
|
static int sof_tplg_cb(const struct dmi_system_id *id)
|
||||||
{
|
{
|
||||||
sof_override_tplg_name = id->driver_data;
|
sof_dmi_override_tplg_name = id->driver_data;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -391,9 +395,20 @@ static int sof_pci_probe(struct pci_dev *pci,
|
|||||||
sof_pdata->tplg_filename_prefix =
|
sof_pdata->tplg_filename_prefix =
|
||||||
sof_pdata->desc->default_tplg_path;
|
sof_pdata->desc->default_tplg_path;
|
||||||
|
|
||||||
dmi_check_system(sof_tplg_table);
|
/*
|
||||||
if (sof_override_tplg_name)
|
* the topology filename will be provided in the machine descriptor, unless
|
||||||
sof_pdata->tplg_filename = sof_override_tplg_name;
|
* it is overridden by a module parameter or DMI quirk.
|
||||||
|
*/
|
||||||
|
if (tplg_filename) {
|
||||||
|
sof_pdata->tplg_filename = tplg_filename;
|
||||||
|
|
||||||
|
dev_dbg(dev, "Module parameter used, changed tplg filename to %s\n",
|
||||||
|
sof_pdata->tplg_filename);
|
||||||
|
} else {
|
||||||
|
dmi_check_system(sof_tplg_table);
|
||||||
|
if (sof_dmi_override_tplg_name)
|
||||||
|
sof_pdata->tplg_filename = sof_dmi_override_tplg_name;
|
||||||
|
}
|
||||||
|
|
||||||
#if IS_ENABLED(CONFIG_SND_SOC_SOF_PROBE_WORK_QUEUE)
|
#if IS_ENABLED(CONFIG_SND_SOC_SOF_PROBE_WORK_QUEUE)
|
||||||
/* set callback to enable runtime_pm */
|
/* set callback to enable runtime_pm */
|
||||||
|
Reference in New Issue
Block a user