@@ -135,35 +135,50 @@ the last stage of extraction.
135
135
Refer to the host side struct sof_probe_point_desc defined in ``sound/soc/sof/probe.h ``
136
136
or struct probe_point in ``/src/include/ipc/probe.h `` from sof for the meaning of the triplets:
137
137
138
- .. code-block :: c
138
+ .. code-block :: c
139
139
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.
151
154
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:
154
158
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
158
160
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");
160
166
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
165
170
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):
167
182
168
183
.. code-block :: bash
169
184
0 commit comments