@@ -135,35 +135,50 @@ the last stage of extraction.
135135 Refer to the host side struct sof_probe_point_desc defined in ``sound/soc/sof/probe.h ``
136136 or struct probe_point in ``/src/include/ipc/probe.h `` from sof for the meaning of the triplets:
137137
138- .. code-block :: c
138+ .. code-block :: c
139139
140- /**
141- * Description of probe point
142- */
143- struct probe_point {
144- uint32_t buffer_id; /**< ID of buffer to which probe is attached */
145- uint32_t purpose; /**< PROBE_PURPOSE_EXTRACTION or PROBE_PURPOSE_INJECTION */
146- uint32_t stream_tag; /**< Stream tag of DMA via which data will be provided for injection.
147- * For extraction purposes, stream tag is ignored when received,
148- * but returned actual extraction stream tag via INFO function.
149- */
150- } __attribute__((packed));
140+ /**
141+ * Description of probe point
142+ */
143+ struct probe_point {
144+ uint32_t buffer_id; /**< ID of buffer to which probe is attached */
145+ uint32_t purpose; /**< PROBE_PURPOSE_EXTRACTION or PROBE_PURPOSE_INJECTION */
146+ uint32_t stream_tag; /**< Stream tag of DMA via which data will be provided for injection.
147+ * For extraction purposes, stream tag is ignored when received,
148+ * but returned actual extraction stream tag via INFO function.
149+ */
150+ } __attribute__((packed));
151+
152+ In the above example, 7 stands for the ``buffer_id `` which is a monolithic
153+ counter value that follows a component instantiation order.
151154
152- In the above example, 7 stands for the ``buffer_id `` which is a monolithic
153- counter value that follows a component instantiation order.
155+ One way to find out the right instance of ``buffer_id `` is to enable
156+ dev_dbg in ``sound/sound/soc/sof/topology.c `` and search for the widget id
157+ from the following messages:
154158
155- One way to find out the right instance of ``buffer_id `` is to enable
156- dev_dbg in ``sound/sound/soc/sof/topology.c `` and search for the widget id
157- from the following messages:
159+ .. code-block :: c
158160
159- .. code-block :: c
161+ dev_dbg(scomp->dev,
162+ "tplg: widget %d (%s) is ready [type: %d, pipe: %d, pins: %d / %d, stream: %s]\n ",
163+ swidget->comp_id, w->name, swidget->id, index,
164+ swidget->num_input_pins, swidget->num_output_pins,
165+ strnlen(w->sname, SNDRV_CTL_ELEM_ID_NAME_MAXLEN) > 0 ? w->sname : "none");
160166
161- dev_dbg(scomp->dev, "tplg: ready widget id %d pipe %d type %d name : %s stream %s\n",
162- swidget->comp_id, index, swidget->id, tw->name,
163- strnlen(tw->sname, SNDRV_CTL_ELEM_ID_NAME_MAXLEN) > 0
164- ? tw->sname : "none");
167+ On a booted system the list can be acquired with
168+
169+ .. code-block :: bash
165170
166- For IPC4 system, the above example looks like this:
171+ dmesg | grep "tplg: widget "
172+ ...
173+ snd_sof:sof_widget_ready: sof-audio-pci-intel-tgl 0000:00:1f.3: tplg: widget 2 (gain.1.1) is ready [type: 6, pipe: 1, pins: 1 / 1, stream: none]
174+ snd_sof:sof_widget_ready: sof-audio-pci-intel-tgl 0000:00:1f.3: tplg: widget 3 (mixin.1.1) is ready [type: 4, pipe: 1, pins: 1 / 3, stream: none]
175+ snd_sof:sof_widget_ready: sof-audio-pci-intel-tgl 0000:00:1f.3: tplg: widget 4 (pipeline.1) is ready [type: 32, pipe: 1, pins: 0 / 0, stream: none]
176+ snd_sof:sof_widget_ready: sof-audio-pci-intel-tgl 0000:00:1f.3: tplg: widget 5 (codec0_in) is ready [type: 0, pipe: 1, pins: 0 / 0, stream: none]
177+ snd_sof:sof_widget_ready: sof-audio-pci-intel-tgl 0000:00:1f.3: tplg: widget 6 (iDisp2 Tx) is ready [type: 7, pipe: 1, pins: 0 / 0, stream: none]
178+ snd_sof:sof_widget_ready: sof-audio-pci-intel-tgl 0000:00:1f.3: tplg: widget 7 (dai-copier.HDA.Analog.playback) is ready [type: 27, pipe: 2, pins: 1 / 0, stream: Analog]
179+ ...
180+
181+ For IPC4 system, the above example looks like this (extraction from gain.1.1):
167182
168183 .. code-block :: bash
169184
0 commit comments