Many routes are just static, not modifiable at runtime. Show the route name
for all the other routes as an edge label in the generated graph.
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Link: https://patch.msgid.link/20240823-dapm-graph-v1-3-989a47308c4c@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Read the bias_level debugfs files (ignored so far) and visualize the On/Off
state of each component using different graphic attributes in the generated
graph.
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Link: https://patch.msgid.link/20240823-dapm-graph-v1-2-989a47308c4c@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Widgets not belonging to any component are currently represented inside a
cluster labeled "ROOT". This is not a correct representation of the actual
structure, as these widgets are not necessarily related to each other as
the ones inside actual components are.
Improve the graphical representation by not adding a cluster around these
widgets. Now a dot cluster represents a card component faithfully. This
will be particularly important with the upcoming improvements which will
visualize the component bias_level.
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Link: https://patch.msgid.link/20240823-dapm-graph-v1-1-989a47308c4c@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Add a tool to generate a picture of the current DAPM state for a sound
card.
dapm-graph is inspired by vizdapm which used to be published on a Wolfson
Micro git repository now disappeared, and has a few forks around:
https://github.com/mihais/asoc-toolshttps://github.com/alexandrebelloni/asoc-tools
dapm-graph is a full reimplementation with several improvements while still
being a self-contained shell script:
Improvements to rendered output:
- shows the entire card, not one component hierarchy only
- each component is rendered in a separate box
- shows widget on/off status based on widget information alone (the
original vizdapm propagates the "on" green colour to the first input
widget)
- use bold line and gray background and not only green/red line to show
on/off status (for the color blind)
Improvements for embedded system developers:
- remote mode: get state of remote device (possibly with minimal rootfs)
via SSH, but parsing locally for faster operation
- compatible with BusyBox shell, not only bash
Usability improvements:
- flexible command line (uses getopts for parsing)
- detailed help text
- flag to enable detailed debug logging
- graphviz output format detected from file extension, not hard coded
- a self-contained shell script
Usage is designed to be simple:
dapm-grpah -c CARD - get state from debugfs for CARD
dapm-grpah -c CARD -r REMOTE_TARGET - same, but remotely via SSH
dapm-grpah -d STATE_DIR - from a local copy of the debugfs
tree for a card
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Reviewed-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Link: https://lore.kernel.org/r/20240416-vizdapm-ng-v1-3-5d33c0b57bc5@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>