Commit 70b0c75a authored by Pierre-Louis Bossart's avatar Pierre-Louis Bossart Committed by Mark Brown

ASoC: SOF: acpi: add debug module param

Add debug parameter for snd-sof-acpi.

One of the usages for this debug parameter to disable pm_runtime,
which can be useful for platform bringup, or keep the parent device
active while enabling pm_runtime for child devices (e.g. with
SoundWire or MFD). This can also be useful to measure suspend-resume
latencies or child devices.
Signed-off-by: default avatarKai Vehmanen <kai.vehmanen@linux.intel.com>
Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20191008164443.1358-4-pierre-louis.bossart@linux.intel.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent 902fd492
...@@ -29,6 +29,12 @@ static char *tplg_path; ...@@ -29,6 +29,12 @@ 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 int sof_acpi_debug;
module_param_named(sof_acpi_debug, sof_acpi_debug, int, 0444);
MODULE_PARM_DESC(sof_acpi_debug, "SOF ACPI debug options (0x0 all off)");
#define SOF_ACPI_DISABLE_PM_RUNTIME BIT(0)
#if IS_ENABLED(CONFIG_SND_SOC_SOF_HASWELL) #if IS_ENABLED(CONFIG_SND_SOC_SOF_HASWELL)
static const struct sof_dev_desc sof_acpi_haswell_desc = { static const struct sof_dev_desc sof_acpi_haswell_desc = {
.machines = snd_soc_acpi_intel_haswell_machines, .machines = snd_soc_acpi_intel_haswell_machines,
...@@ -121,6 +127,9 @@ static const struct dev_pm_ops sof_acpi_pm = { ...@@ -121,6 +127,9 @@ static const struct dev_pm_ops sof_acpi_pm = {
static void sof_acpi_probe_complete(struct device *dev) static void sof_acpi_probe_complete(struct device *dev)
{ {
if (sof_acpi_debug & SOF_ACPI_DISABLE_PM_RUNTIME)
return;
/* allow runtime_pm */ /* allow runtime_pm */
pm_runtime_set_autosuspend_delay(dev, SND_SOF_SUSPEND_DELAY_MS); pm_runtime_set_autosuspend_delay(dev, SND_SOF_SUSPEND_DELAY_MS);
pm_runtime_use_autosuspend(dev); pm_runtime_use_autosuspend(dev);
...@@ -221,7 +230,8 @@ static int sof_acpi_probe(struct platform_device *pdev) ...@@ -221,7 +230,8 @@ static int sof_acpi_probe(struct platform_device *pdev)
static int sof_acpi_remove(struct platform_device *pdev) static int sof_acpi_remove(struct platform_device *pdev)
{ {
pm_runtime_disable(&pdev->dev); if (!(sof_acpi_debug & SOF_ACPI_DISABLE_PM_RUNTIME))
pm_runtime_disable(&pdev->dev);
/* call sof helper for DSP hardware remove */ /* call sof helper for DSP hardware remove */
snd_sof_device_remove(&pdev->dev); snd_sof_device_remove(&pdev->dev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment