]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ASoC: SOF: ipc4-pcm: Pipe instances to dev_dbg in multi_pipeline_state()
authorJyri Sarha <jyri.sarha@linux.intel.com>
Thu, 19 Jun 2025 12:11:20 +0000 (15:11 +0300)
committerMark Brown <broonie@kernel.org>
Thu, 19 Jun 2025 12:19:54 +0000 (13:19 +0100)
Add a dev_dbg to sof_ipc4_set_multi_pipeline_state(). The debug print
lists the pipeline instance numbers that are included in the
SOF_IPC4_GLB_SET_PIPELINE_STATE message. Without this log its very
hard to tell what pipelines are affected. This print is very helpful
when analyzing SOF logs automatically.

Signed-off-by: Jyri Sarha <jyri.sarha@linux.intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Reviewed-by: Liam Girdwood <liam.r.girdwood@intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Link: https://patch.msgid.link/20250619121121.25241-3-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/ipc4-pcm.c

index 8eee3e1aadf9325a0a158e2c98e7220b33d705ff..be4518d8970bfcf316fe9d42dc0d93e1be2d6d51 100644 (file)
@@ -56,17 +56,41 @@ sof_ipc4_sps_to_time_info(struct snd_sof_pcm_stream *sps)
        return stream_priv->time_info;
 }
 
+static
+char *sof_ipc4_set_multi_pipeline_state_debug(struct snd_sof_dev *sdev, char *buf, size_t size,
+                                             struct ipc4_pipeline_set_state_data *trigger_list)
+{
+       int i, offset = 0;
+
+       for (i = 0; i < trigger_list->count; i++) {
+               offset += snprintf(buf + offset, size - offset, " %d",
+                                  trigger_list->pipeline_instance_ids[i]);
+
+               if (offset >= size - 1) {
+                       buf[size - 1] = '\0';
+                       break;
+               }
+       }
+       return buf;
+}
+
 static int sof_ipc4_set_multi_pipeline_state(struct snd_sof_dev *sdev, u32 state,
                                             struct ipc4_pipeline_set_state_data *trigger_list)
 {
        struct sof_ipc4_msg msg = {{ 0 }};
        u32 primary, ipc_size;
+       char debug_buf[32];
 
        /* trigger a single pipeline */
        if (trigger_list->count == 1)
                return sof_ipc4_set_pipeline_state(sdev, trigger_list->pipeline_instance_ids[0],
                                                   state);
 
+       dev_dbg(sdev->dev, "Set pipelines %s to state %d%s",
+               sof_ipc4_set_multi_pipeline_state_debug(sdev, debug_buf, sizeof(debug_buf),
+                                                       trigger_list),
+               state, sof_ipc4_pipeline_state_str(state));
+
        primary = state;
        primary |= SOF_IPC4_MSG_TYPE_SET(SOF_IPC4_GLB_SET_PIPELINE_STATE);
        primary |= SOF_IPC4_MSG_DIR(SOF_IPC4_MSG_REQUEST);