Skip to content

Commit

Permalink
ASoC: SOF: core: Add debug module parameters to set IPC and boot timeout
Browse files Browse the repository at this point in the history
Add two module parameters to override the IPC and boot timeout values if
the SOF stack is compiled with debug enabled to allow experimenting with
different timeout values without the need to recompile the kernel.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
  • Loading branch information
ujfalusi committed Sep 24, 2024
1 parent 753b2cc commit f8b852f
Showing 1 changed file with 24 additions and 1 deletion.
25 changes: 24 additions & 1 deletion sound/soc/sof/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,17 @@ static int sof_core_debug = IS_ENABLED(CONFIG_SND_SOC_SOF_DEBUG_ENABLE_FIRMWARE
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
Expand Down Expand Up @@ -636,11 +647,23 @@ int snd_sof_device_probe(struct device *dev, struct snd_sof_pdata *plat_data)
mutex_init(&sdev->ipc_client_mutex);
mutex_init(&sdev->client_event_handler_mutex);

/* set default timeouts if none provided */
/* set IPC timeout */
#if IS_ENABLED(CONFIG_SND_SOC_SOF_DEBUG)
if (sof_ipc_timeout_ms)
sdev->ipc_timeout = sof_ipc_timeout_ms;
else
#endif
if (plat_data->desc->ipc_timeout == 0)
sdev->ipc_timeout = TIMEOUT_DEFAULT_IPC_MS;
else
sdev->ipc_timeout = plat_data->desc->ipc_timeout;

/* set DSP/firmware boot timeout */
#if IS_ENABLED(CONFIG_SND_SOC_SOF_DEBUG)
if (sof_boot_timeout_ms)
sdev->boot_timeout = sof_boot_timeout_ms;
else
#endif
if (plat_data->desc->boot_timeout == 0)
sdev->boot_timeout = TIMEOUT_DEFAULT_BOOT_MS;
else
Expand Down

0 comments on commit f8b852f

Please sign in to comment.