Skip to content

Commit c4cf4a6

Browse files
committed
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.
2 parents 9b0c651 + acb2198 commit c4cf4a6

4 files changed

Lines changed: 76 additions & 12 deletions

File tree

sound/soc/sof/core.c

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,47 @@
1919
#define CREATE_TRACE_POINTS
2020
#include <trace/events/sof.h>
2121

22+
/* Module parameters for firmware, topology and IPC type override */
23+
static char *override_fw_path;
24+
module_param_named(fw_path, override_fw_path, charp, 0444);
25+
MODULE_PARM_DESC(fw_path, "alternate path for SOF firmware.");
26+
27+
static char *override_fw_filename;
28+
module_param_named(fw_filename, override_fw_filename, charp, 0444);
29+
MODULE_PARM_DESC(fw_filename, "alternate filename for SOF firmware.");
30+
31+
static char *override_lib_path;
32+
module_param_named(lib_path, override_lib_path, charp, 0444);
33+
MODULE_PARM_DESC(lib_path, "alternate path for SOF firmware libraries.");
34+
35+
static char *override_tplg_path;
36+
module_param_named(tplg_path, override_tplg_path, charp, 0444);
37+
MODULE_PARM_DESC(tplg_path, "alternate path for SOF topology.");
38+
39+
static char *override_tplg_filename;
40+
module_param_named(tplg_filename, override_tplg_filename, charp, 0444);
41+
MODULE_PARM_DESC(tplg_filename, "alternate filename for SOF topology.");
42+
43+
static int override_ipc_type = -1;
44+
module_param_named(ipc_type, override_ipc_type, int, 0444);
45+
MODULE_PARM_DESC(ipc_type, "Force SOF IPC type. 0 - IPC3, 1 - IPC4");
46+
2247
/* see SOF_DBG_ flags */
2348
static int sof_core_debug = IS_ENABLED(CONFIG_SND_SOC_SOF_DEBUG_ENABLE_FIRMWARE_TRACE);
2449
module_param_named(sof_debug, sof_core_debug, int, 0444);
2550
MODULE_PARM_DESC(sof_debug, "SOF core debug options (0x0 all off)");
2651

52+
#if IS_ENABLED(CONFIG_SND_SOC_SOF_DEBUG)
53+
static unsigned int sof_ipc_timeout_ms;
54+
static unsigned int sof_boot_timeout_ms;
55+
module_param_named(ipc_timeout, sof_ipc_timeout_ms, uint, 0444);
56+
MODULE_PARM_DESC(ipc_timeout,
57+
"Set the IPC timeout value in ms (0 to use the platform default)");
58+
module_param_named(boot_timeout, sof_boot_timeout_ms, uint, 0444);
59+
MODULE_PARM_DESC(boot_timeout,
60+
"Set the DSP boot timeout value in ms (0 to use the platform default)");
61+
#endif
62+
2763
/* SOF defaults if not provided by the platform in ms */
2864
#define TIMEOUT_DEFAULT_IPC_MS 500
2965
#define TIMEOUT_DEFAULT_BOOT_MS 2000
@@ -570,6 +606,23 @@ static void sof_probe_work(struct work_struct *work)
570606
}
571607
}
572608

609+
static void
610+
sof_apply_profile_override(struct sof_loadable_file_profile *path_override)
611+
{
612+
if (override_ipc_type >= 0 && override_ipc_type < SOF_IPC_TYPE_COUNT)
613+
path_override->ipc_type = override_ipc_type;
614+
if (override_fw_path)
615+
path_override->fw_path = override_fw_path;
616+
if (override_fw_filename)
617+
path_override->fw_name = override_fw_filename;
618+
if (override_lib_path)
619+
path_override->fw_lib_path = override_lib_path;
620+
if (override_tplg_path)
621+
path_override->tplg_path = override_tplg_path;
622+
if (override_tplg_filename)
623+
path_override->tplg_name = override_tplg_filename;
624+
}
625+
573626
int snd_sof_device_probe(struct device *dev, struct snd_sof_pdata *plat_data)
574627
{
575628
struct snd_sof_dev *sdev;
@@ -601,6 +654,8 @@ int snd_sof_device_probe(struct device *dev, struct snd_sof_pdata *plat_data)
601654
}
602655
}
603656

657+
sof_apply_profile_override(&plat_data->ipc_file_profile_base);
658+
604659
/* Initialize sof_ops based on the initial selected IPC version */
605660
ret = sof_init_sof_ops(sdev);
606661
if (ret)
@@ -632,6 +687,15 @@ int snd_sof_device_probe(struct device *dev, struct snd_sof_pdata *plat_data)
632687
else
633688
sdev->boot_timeout = plat_data->desc->boot_timeout;
634689

690+
#if IS_ENABLED(CONFIG_SND_SOC_SOF_DEBUG)
691+
/* Override the timeout values with module parameter, if set */
692+
if (sof_ipc_timeout_ms)
693+
sdev->ipc_timeout = sof_ipc_timeout_ms;
694+
695+
if (sof_boot_timeout_ms)
696+
sdev->boot_timeout = sof_boot_timeout_ms;
697+
#endif
698+
635699
sof_set_fw_state(sdev, SOF_FW_BOOT_NOT_STARTED);
636700

637701
/*

sound/soc/sof/sof-acpi-dev.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@
2424

2525
static char *fw_path;
2626
module_param(fw_path, charp, 0444);
27-
MODULE_PARM_DESC(fw_path, "alternate path for SOF firmware.");
27+
MODULE_PARM_DESC(fw_path, "deprecated - moved to snd-sof module.");
2828

2929
static char *tplg_path;
3030
module_param(tplg_path, charp, 0444);
31-
MODULE_PARM_DESC(tplg_path, "alternate path for SOF topology.");
31+
MODULE_PARM_DESC(tplg_path, "deprecated - moved to snd-sof module.");
3232

3333
static int sof_acpi_debug;
3434
module_param_named(sof_acpi_debug, sof_acpi_debug, int, 0444);

sound/soc/sof/sof-of-dev.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,19 @@
1616

1717
static char *fw_path;
1818
module_param(fw_path, charp, 0444);
19-
MODULE_PARM_DESC(fw_path, "alternate path for SOF firmware.");
19+
MODULE_PARM_DESC(fw_path, "deprecated - moved to snd-sof module.");
2020

2121
static char *fw_filename;
2222
module_param(fw_filename, charp, 0444);
23-
MODULE_PARM_DESC(fw_filename, "alternate filename for SOF firmware.");
23+
MODULE_PARM_DESC(fw_filename, "deprecated - moved to snd-sof module.");
2424

2525
static char *tplg_path;
2626
module_param(tplg_path, charp, 0444);
27-
MODULE_PARM_DESC(tplg_path, "alternate path for SOF topology.");
27+
MODULE_PARM_DESC(tplg_path, "deprecated - moved to snd-sof module.");
2828

2929
static char *tplg_filename;
3030
module_param(tplg_filename, charp, 0444);
31-
MODULE_PARM_DESC(tplg_filename, "alternate filename for SOF topology.");
31+
MODULE_PARM_DESC(tplg_filename, "deprecated - moved to snd-sof module.");
3232

3333
const struct dev_pm_ops sof_of_pm = {
3434
.prepare = snd_sof_prepare,

sound/soc/sof/sof-pci-dev.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,31 +22,31 @@
2222

2323
static char *fw_path;
2424
module_param(fw_path, charp, 0444);
25-
MODULE_PARM_DESC(fw_path, "alternate path for SOF firmware.");
25+
MODULE_PARM_DESC(fw_path, "deprecated - moved to snd-sof module.");
2626

2727
static char *fw_filename;
2828
module_param(fw_filename, charp, 0444);
29-
MODULE_PARM_DESC(fw_filename, "alternate filename for SOF firmware.");
29+
MODULE_PARM_DESC(fw_filename, "deprecated - moved to snd-sof module.");
3030

3131
static char *lib_path;
3232
module_param(lib_path, charp, 0444);
33-
MODULE_PARM_DESC(lib_path, "alternate path for SOF firmware libraries.");
33+
MODULE_PARM_DESC(lib_path, "deprecated - moved to snd-sof module.");
3434

3535
static char *tplg_path;
3636
module_param(tplg_path, charp, 0444);
37-
MODULE_PARM_DESC(tplg_path, "alternate path for SOF topology.");
37+
MODULE_PARM_DESC(tplg_path, "deprecated - moved to snd-sof module.");
3838

3939
static char *tplg_filename;
4040
module_param(tplg_filename, charp, 0444);
41-
MODULE_PARM_DESC(tplg_filename, "alternate filename for SOF topology.");
41+
MODULE_PARM_DESC(tplg_filename, "deprecated - moved to snd-sof module.");
4242

4343
static int sof_pci_debug;
4444
module_param_named(sof_pci_debug, sof_pci_debug, int, 0444);
4545
MODULE_PARM_DESC(sof_pci_debug, "SOF PCI debug options (0x0 all off)");
4646

4747
static int sof_pci_ipc_type = -1;
4848
module_param_named(ipc_type, sof_pci_ipc_type, int, 0444);
49-
MODULE_PARM_DESC(ipc_type, "Force SOF IPC type. 0 - IPC3, 1 - IPC4");
49+
MODULE_PARM_DESC(ipc_type, "deprecated - moved to snd-sof module.");
5050

5151
static const char *sof_dmi_override_tplg_name;
5252
static bool sof_dmi_use_community_key;

0 commit comments

Comments
 (0)