diff options
| author | Jyri Sarha <jyri.sarha@linux.intel.com> | 2025-08-29 12:30:21 +0300 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2025-08-29 13:34:18 +0200 |
| commit | b6082647f7222c05d34db94455a4e81981c51da1 (patch) | |
| tree | 3c81415a53cd95bfd18f00c78a33178b25055df3 /sound/soc/sof/sof-client-probes.c | |
| parent | e6cf5e44ce1eed7aa72e7fb0cbff054e3f1dec0d (diff) | |
ASoC: SOF: sof-client-probes-ipc4: Human readable debugfs "probe_points"
The current output of three integers is not very human readable. Use
ipc4 functions to describe in more detail what the struct
sof_probe_point_desc buffer_id is actually referring to in an ipc4 SOF
system.
Before this commit the "probe_points" debugfs file could read as:
Id: 0x01000004 Purpose: 0 Node id: 0x100
Id: 0x00000006 Purpose: 0 Node id: 0x100
And after in the same situation in an ipc4 system it reads:
0x7,0x0,0x100 gain.1.1 input buf idx 0 (connected)
0x1000005,0x0,0x100 host-copier.0.playback output buf idx 0 (connected)
The triplet in the beginning of the line can be used to reinserted the
probe point again by writing it into "probe_points" debugfs file, if
its first removed by writing the fist number in "probe_points_remove".
The last number is ignored when creating a probe point.
Signed-off-by: Jyri Sarha <jyri.sarha@linux.intel.com>
Reviewed-by: Liam Girdwood <liam.r.girdwood@intel.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Message-ID: <20250829093022.32094-5-peter.ujfalusi@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/sof/sof-client-probes.c')
| -rw-r--r-- | sound/soc/sof/sof-client-probes.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/sound/soc/sof/sof-client-probes.c b/sound/soc/sof/sof-client-probes.c index 663c0d3c314c..242fa19a82ec 100644 --- a/sound/soc/sof/sof-client-probes.c +++ b/sound/soc/sof/sof-client-probes.c @@ -17,8 +17,14 @@ #include <sound/soc.h> #include <sound/sof/header.h> +#include <sound/sof/ipc4/header.h> #include "sof-client.h" #include "sof-client-probes.h" +#include "sof-audio.h" + +#ifdef CONFIG_SND_SOC_SOF_IPC4 +#include "ipc4-priv.h" +#endif #define SOF_PROBES_SUSPEND_DELAY_MS 3000 /* only extraction supported for now */ @@ -223,9 +229,13 @@ static ssize_t sof_probes_dfs_points_read(struct file *file, char __user *to, for (i = 0; i < num_desc; i++) { offset = strlen(buf); remaining = PAGE_SIZE - offset; - ret = snprintf(buf + offset, remaining, - "Id: %#010x Purpose: %u Node id: %#x\n", - desc[i].buffer_id, desc[i].purpose, desc[i].stream_tag); + if (ipc->point_print) + ret = ipc->point_print(cdev, buf + offset, remaining, &desc[i]); + else + ret = snprintf(buf + offset, remaining, + "Id: %#010x Purpose: %u Node id: %#x\n", + desc[i].buffer_id, desc[i].purpose, desc[i].stream_tag); + if (ret < 0 || ret >= remaining) { /* truncate the output buffer at the last full line */ buf[offset] = '\0'; |
