ASoC: SOF: topology: allow for dynamic pipelines override for debug
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Mon, 4 Oct 2021 21:27:28 +0000 (16:27 -0500)
committerMark Brown <broonie@kernel.org>
Tue, 5 Oct 2021 12:09:55 +0000 (13:09 +0100)
For debug and community support, it's useful to expose a kernel
parameter to prevent the use of dynamic pipelines exposed in a
topology file, or conversely to force an existing topology to use
dynamic pipelines.

Add an override bit and an enable bit which is valid only when the
override is set.

For products, the intent is that the topology file defines the
behavior, these two bits are only intended for diagnosis and
performance checks.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Bard Liao <bard.liao@intel.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://lore.kernel.org/r/20211004212729.199550-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/sof-priv.h
sound/soc/sof/topology.c

index 1289e2efeb62fc1668be6e082198a550724b2e2d..4e5bab838cbff7285bbc2d83f779120a571cafd2 100644 (file)
 #define SOF_DBG_ENABLE_TRACE   BIT(0)
 #define SOF_DBG_RETAIN_CTX     BIT(1)  /* prevent DSP D3 on FW exception */
 #define SOF_DBG_VERIFY_TPLG    BIT(2) /* verify topology during load */
+#define SOF_DBG_DYNAMIC_PIPELINES_OVERRIDE     BIT(3) /* 0: use topology token
+                                                       * 1: override topology
+                                                       */
+#define SOF_DBG_DYNAMIC_PIPELINES_ENABLE       BIT(4) /* 0: use static pipelines
+                                                       * 1: use dynamic pipelines
+                                                       */
 
 #define SOF_DBG_DUMP_REGS              BIT(0)
 #define SOF_DBG_DUMP_MBOX              BIT(1)
index 32461f68a641e63037fe7ce2a8444b746627c15f..b54b3d280297850ad79cef363357c23f55a4bd61 100644 (file)
@@ -1759,9 +1759,14 @@ static int sof_widget_load_pipeline(struct snd_soc_component *scomp, int index,
                goto err;
        }
 
-       dev_dbg(scomp->dev, "pipeline %s: period %d pri %d mips %d core %d frames %d\n",
+       if (sof_core_debug & SOF_DBG_DYNAMIC_PIPELINES_OVERRIDE)
+               swidget->dynamic_pipeline_widget = sof_core_debug &
+                       SOF_DBG_DYNAMIC_PIPELINES_ENABLE;
+
+       dev_dbg(scomp->dev, "pipeline %s: period %d pri %d mips %d core %d frames %d dynamic %d\n",
                swidget->widget->name, pipeline->period, pipeline->priority,
-               pipeline->period_mips, pipeline->core, pipeline->frames_per_sched);
+               pipeline->period_mips, pipeline->core, pipeline->frames_per_sched,
+               swidget->dynamic_pipeline_widget);
 
        swidget->private = pipeline;