mirror of
https://github.com/torvalds/linux.git
synced 2024-11-25 13:41:51 +00:00
ASoC: SOF: core: Module parameter updates
Merge series from Peter Ujfalusi <peter.ujfalusi@linux.intel.com>: Add new debug only parameters to override the default IPC and boot timeout, these are only available if CONFIG_SND_SOC_SOF_DEBUG is enabled, only for developers. The second patch moves the firmware, topology name/path and IPC version overrides from acpi/pci/of platform code to core and markes the platform parameters deprecated, to be removed in few kernel cycles. There is really no point of duplicating these overrides as they are not platform dependent.
This commit is contained in:
commit
c4cf4a60e1
@ -19,11 +19,47 @@
|
||||
#define CREATE_TRACE_POINTS
|
||||
#include <trace/events/sof.h>
|
||||
|
||||
/* Module parameters for firmware, topology and IPC type override */
|
||||
static char *override_fw_path;
|
||||
module_param_named(fw_path, override_fw_path, charp, 0444);
|
||||
MODULE_PARM_DESC(fw_path, "alternate path for SOF firmware.");
|
||||
|
||||
static char *override_fw_filename;
|
||||
module_param_named(fw_filename, override_fw_filename, charp, 0444);
|
||||
MODULE_PARM_DESC(fw_filename, "alternate filename for SOF firmware.");
|
||||
|
||||
static char *override_lib_path;
|
||||
module_param_named(lib_path, override_lib_path, charp, 0444);
|
||||
MODULE_PARM_DESC(lib_path, "alternate path for SOF firmware libraries.");
|
||||
|
||||
static char *override_tplg_path;
|
||||
module_param_named(tplg_path, override_tplg_path, charp, 0444);
|
||||
MODULE_PARM_DESC(tplg_path, "alternate path for SOF topology.");
|
||||
|
||||
static char *override_tplg_filename;
|
||||
module_param_named(tplg_filename, override_tplg_filename, charp, 0444);
|
||||
MODULE_PARM_DESC(tplg_filename, "alternate filename for SOF topology.");
|
||||
|
||||
static int override_ipc_type = -1;
|
||||
module_param_named(ipc_type, override_ipc_type, int, 0444);
|
||||
MODULE_PARM_DESC(ipc_type, "Force SOF IPC type. 0 - IPC3, 1 - IPC4");
|
||||
|
||||
/* see SOF_DBG_ flags */
|
||||
static int sof_core_debug = IS_ENABLED(CONFIG_SND_SOC_SOF_DEBUG_ENABLE_FIRMWARE_TRACE);
|
||||
module_param_named(sof_debug, sof_core_debug, int, 0444);
|
||||
MODULE_PARM_DESC(sof_debug, "SOF core debug options (0x0 all off)");
|
||||
|
||||
#if IS_ENABLED(CONFIG_SND_SOC_SOF_DEBUG)
|
||||
static unsigned int sof_ipc_timeout_ms;
|
||||
static unsigned int sof_boot_timeout_ms;
|
||||
module_param_named(ipc_timeout, sof_ipc_timeout_ms, uint, 0444);
|
||||
MODULE_PARM_DESC(ipc_timeout,
|
||||
"Set the IPC timeout value in ms (0 to use the platform default)");
|
||||
module_param_named(boot_timeout, sof_boot_timeout_ms, uint, 0444);
|
||||
MODULE_PARM_DESC(boot_timeout,
|
||||
"Set the DSP boot timeout value in ms (0 to use the platform default)");
|
||||
#endif
|
||||
|
||||
/* SOF defaults if not provided by the platform in ms */
|
||||
#define TIMEOUT_DEFAULT_IPC_MS 500
|
||||
#define TIMEOUT_DEFAULT_BOOT_MS 2000
|
||||
@ -570,6 +606,23 @@ static void sof_probe_work(struct work_struct *work)
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
sof_apply_profile_override(struct sof_loadable_file_profile *path_override)
|
||||
{
|
||||
if (override_ipc_type >= 0 && override_ipc_type < SOF_IPC_TYPE_COUNT)
|
||||
path_override->ipc_type = override_ipc_type;
|
||||
if (override_fw_path)
|
||||
path_override->fw_path = override_fw_path;
|
||||
if (override_fw_filename)
|
||||
path_override->fw_name = override_fw_filename;
|
||||
if (override_lib_path)
|
||||
path_override->fw_lib_path = override_lib_path;
|
||||
if (override_tplg_path)
|
||||
path_override->tplg_path = override_tplg_path;
|
||||
if (override_tplg_filename)
|
||||
path_override->tplg_name = override_tplg_filename;
|
||||
}
|
||||
|
||||
int snd_sof_device_probe(struct device *dev, struct snd_sof_pdata *plat_data)
|
||||
{
|
||||
struct snd_sof_dev *sdev;
|
||||
@ -601,6 +654,8 @@ int snd_sof_device_probe(struct device *dev, struct snd_sof_pdata *plat_data)
|
||||
}
|
||||
}
|
||||
|
||||
sof_apply_profile_override(&plat_data->ipc_file_profile_base);
|
||||
|
||||
/* Initialize sof_ops based on the initial selected IPC version */
|
||||
ret = sof_init_sof_ops(sdev);
|
||||
if (ret)
|
||||
@ -632,6 +687,15 @@ int snd_sof_device_probe(struct device *dev, struct snd_sof_pdata *plat_data)
|
||||
else
|
||||
sdev->boot_timeout = plat_data->desc->boot_timeout;
|
||||
|
||||
#if IS_ENABLED(CONFIG_SND_SOC_SOF_DEBUG)
|
||||
/* Override the timeout values with module parameter, if set */
|
||||
if (sof_ipc_timeout_ms)
|
||||
sdev->ipc_timeout = sof_ipc_timeout_ms;
|
||||
|
||||
if (sof_boot_timeout_ms)
|
||||
sdev->boot_timeout = sof_boot_timeout_ms;
|
||||
#endif
|
||||
|
||||
sof_set_fw_state(sdev, SOF_FW_BOOT_NOT_STARTED);
|
||||
|
||||
/*
|
||||
|
@ -24,11 +24,11 @@
|
||||
|
||||
static char *fw_path;
|
||||
module_param(fw_path, charp, 0444);
|
||||
MODULE_PARM_DESC(fw_path, "alternate path for SOF firmware.");
|
||||
MODULE_PARM_DESC(fw_path, "deprecated - moved to snd-sof module.");
|
||||
|
||||
static char *tplg_path;
|
||||
module_param(tplg_path, charp, 0444);
|
||||
MODULE_PARM_DESC(tplg_path, "alternate path for SOF topology.");
|
||||
MODULE_PARM_DESC(tplg_path, "deprecated - moved to snd-sof module.");
|
||||
|
||||
static int sof_acpi_debug;
|
||||
module_param_named(sof_acpi_debug, sof_acpi_debug, int, 0444);
|
||||
|
@ -16,19 +16,19 @@
|
||||
|
||||
static char *fw_path;
|
||||
module_param(fw_path, charp, 0444);
|
||||
MODULE_PARM_DESC(fw_path, "alternate path for SOF firmware.");
|
||||
MODULE_PARM_DESC(fw_path, "deprecated - moved to snd-sof module.");
|
||||
|
||||
static char *fw_filename;
|
||||
module_param(fw_filename, charp, 0444);
|
||||
MODULE_PARM_DESC(fw_filename, "alternate filename for SOF firmware.");
|
||||
MODULE_PARM_DESC(fw_filename, "deprecated - moved to snd-sof module.");
|
||||
|
||||
static char *tplg_path;
|
||||
module_param(tplg_path, charp, 0444);
|
||||
MODULE_PARM_DESC(tplg_path, "alternate path for SOF topology.");
|
||||
MODULE_PARM_DESC(tplg_path, "deprecated - moved to snd-sof module.");
|
||||
|
||||
static char *tplg_filename;
|
||||
module_param(tplg_filename, charp, 0444);
|
||||
MODULE_PARM_DESC(tplg_filename, "alternate filename for SOF topology.");
|
||||
MODULE_PARM_DESC(tplg_filename, "deprecated - moved to snd-sof module.");
|
||||
|
||||
const struct dev_pm_ops sof_of_pm = {
|
||||
.prepare = snd_sof_prepare,
|
||||
|
@ -22,23 +22,23 @@
|
||||
|
||||
static char *fw_path;
|
||||
module_param(fw_path, charp, 0444);
|
||||
MODULE_PARM_DESC(fw_path, "alternate path for SOF firmware.");
|
||||
MODULE_PARM_DESC(fw_path, "deprecated - moved to snd-sof module.");
|
||||
|
||||
static char *fw_filename;
|
||||
module_param(fw_filename, charp, 0444);
|
||||
MODULE_PARM_DESC(fw_filename, "alternate filename for SOF firmware.");
|
||||
MODULE_PARM_DESC(fw_filename, "deprecated - moved to snd-sof module.");
|
||||
|
||||
static char *lib_path;
|
||||
module_param(lib_path, charp, 0444);
|
||||
MODULE_PARM_DESC(lib_path, "alternate path for SOF firmware libraries.");
|
||||
MODULE_PARM_DESC(lib_path, "deprecated - moved to snd-sof module.");
|
||||
|
||||
static char *tplg_path;
|
||||
module_param(tplg_path, charp, 0444);
|
||||
MODULE_PARM_DESC(tplg_path, "alternate path for SOF topology.");
|
||||
MODULE_PARM_DESC(tplg_path, "deprecated - moved to snd-sof module.");
|
||||
|
||||
static char *tplg_filename;
|
||||
module_param(tplg_filename, charp, 0444);
|
||||
MODULE_PARM_DESC(tplg_filename, "alternate filename for SOF topology.");
|
||||
MODULE_PARM_DESC(tplg_filename, "deprecated - moved to snd-sof module.");
|
||||
|
||||
static int sof_pci_debug;
|
||||
module_param_named(sof_pci_debug, sof_pci_debug, int, 0444);
|
||||
@ -46,7 +46,7 @@ MODULE_PARM_DESC(sof_pci_debug, "SOF PCI debug options (0x0 all off)");
|
||||
|
||||
static int sof_pci_ipc_type = -1;
|
||||
module_param_named(ipc_type, sof_pci_ipc_type, int, 0444);
|
||||
MODULE_PARM_DESC(ipc_type, "Force SOF IPC type. 0 - IPC3, 1 - IPC4");
|
||||
MODULE_PARM_DESC(ipc_type, "deprecated - moved to snd-sof module.");
|
||||
|
||||
static const char *sof_dmi_override_tplg_name;
|
||||
static bool sof_dmi_use_community_key;
|
||||
|
Loading…
Reference in New Issue
Block a user