Commit 6756d308 authored by Mark Brown's avatar Mark Brown

ASoC: dapm-graph: add component on/off and route names

Merge series from Luca Ceresoli <luca.ceresoli@bootlin.com>:

This small series adds some improvements to dapm-graph in order to produce
a more correct and informative graph.
parents b42c0ec2 a14b278a
...@@ -8,6 +8,8 @@ ...@@ -8,6 +8,8 @@
set -eu set -eu
STYLE_COMPONENT_ON="color=dodgerblue;style=bold"
STYLE_COMPONENT_OFF="color=gray40;style=filled;fillcolor=gray90"
STYLE_NODE_ON="shape=box,style=bold,color=green4" STYLE_NODE_ON="shape=box,style=bold,color=green4"
STYLE_NODE_OFF="shape=box,style=filled,color=gray30,fillcolor=gray95" STYLE_NODE_OFF="shape=box,style=filled,color=gray30,fillcolor=gray95"
...@@ -132,11 +134,17 @@ process_dapm_widget() ...@@ -132,11 +134,17 @@ process_dapm_widget()
# Collect any links. We could use "in" links or "out" links, # Collect any links. We could use "in" links or "out" links,
# let's use "in" links # let's use "in" links
if echo "${line}" | grep -q '^in '; then if echo "${line}" | grep -q '^in '; then
local w_route=$(echo "$line" | awk -F\" '{print $2}')
local w_src=$(echo "$line" | local w_src=$(echo "$line" |
awk -F\" '{print $6 "_" $4}' | awk -F\" '{print $6 "_" $4}' |
sed 's/^(null)_/ROOT_/') sed 's/^(null)_/ROOT_/')
dbg_echo " - Input route from: ${w_src}" dbg_echo " - Input route from: ${w_src}"
echo " \"${w_src}\" -> \"$w_tag\"" >> "${links_file}" dbg_echo " - Route: ${w_route}"
local w_edge_attrs=""
if [ "${w_route}" != "static" ]; then
w_edge_attrs=" [label=\"${w_route}\"]"
fi
echo " \"${w_src}\" -> \"$w_tag\"${w_edge_attrs}" >> "${links_file}"
fi fi
done done
...@@ -150,16 +158,20 @@ process_dapm_widget() ...@@ -150,16 +158,20 @@ process_dapm_widget()
# #
# $1 = temporary work dir # $1 = temporary work dir
# $2 = component directory # $2 = component directory
# $3 = forced component name (extracted for path if empty) # $3 = "ROOT" for the root card directory, empty otherwise
process_dapm_component() process_dapm_component()
{ {
local tmp_dir="${1}" local tmp_dir="${1}"
local c_dir="${2}" local c_dir="${2}"
local c_name="${3}" local c_name="${3}"
local is_component=0
local dot_file="${tmp_dir}/main.dot" local dot_file="${tmp_dir}/main.dot"
local links_file="${tmp_dir}/links.dot" local links_file="${tmp_dir}/links.dot"
local c_attribs=""
if [ -z "${c_name}" ]; then if [ -z "${c_name}" ]; then
is_component=1
# Extract directory name into component name: # Extract directory name into component name:
# "./cs42l51.0-004a/dapm" -> "cs42l51.0-004a" # "./cs42l51.0-004a/dapm" -> "cs42l51.0-004a"
c_name="$(basename $(dirname "${c_dir}"))" c_name="$(basename $(dirname "${c_dir}"))"
...@@ -167,11 +179,23 @@ process_dapm_component() ...@@ -167,11 +179,23 @@ process_dapm_component()
dbg_echo " * Component: ${c_name}" dbg_echo " * Component: ${c_name}"
if [ ${is_component} = 1 ]; then
if [ -f "${c_dir}/bias_level" ]; then
c_onoff=$(sed -n -e 1p "${c_dir}/bias_level" | awk '{print $1}')
dbg_echo " - bias_level: ${c_onoff}"
if [ "$c_onoff" = "On" ]; then
c_attribs="${STYLE_COMPONENT_ON}"
elif [ "$c_onoff" = "Off" ]; then
c_attribs="${STYLE_COMPONENT_OFF}"
fi
fi
echo "" >> "${dot_file}" echo "" >> "${dot_file}"
echo " subgraph \"${c_name}\" {" >> "${dot_file}" echo " subgraph \"${c_name}\" {" >> "${dot_file}"
echo " cluster = true" >> "${dot_file}" echo " cluster = true" >> "${dot_file}"
echo " label = \"${c_name}\"" >> "${dot_file}" echo " label = \"${c_name}\"" >> "${dot_file}"
echo " color=dodgerblue" >> "${dot_file}" echo " ${c_attribs}" >> "${dot_file}"
fi
# Create empty file to ensure it will exist in all cases # Create empty file to ensure it will exist in all cases
>"${links_file}" >"${links_file}"
...@@ -181,7 +205,9 @@ process_dapm_component() ...@@ -181,7 +205,9 @@ process_dapm_component()
process_dapm_widget "${tmp_dir}" "${c_name}" "${w_file}" process_dapm_widget "${tmp_dir}" "${c_name}" "${w_file}"
done done
if [ ${is_component} = 1 ]; then
echo " }" >> "${dot_file}" echo " }" >> "${dot_file}"
fi
cat "${links_file}" >> "${dot_file}" cat "${links_file}" >> "${dot_file}"
} }
...@@ -200,7 +226,7 @@ process_dapm_tree() ...@@ -200,7 +226,7 @@ process_dapm_tree()
echo "digraph G {" > "${dot_file}" echo "digraph G {" > "${dot_file}"
echo " fontname=\"sans-serif\"" >> "${dot_file}" echo " fontname=\"sans-serif\"" >> "${dot_file}"
echo " node [fontname=\"sans-serif\"]" >> "${dot_file}" echo " node [fontname=\"sans-serif\"]" >> "${dot_file}"
echo " edge [fontname=\"sans-serif\"]" >> "${dot_file}"
# Process root directory (no component) # Process root directory (no component)
process_dapm_component "${tmp_dir}" "${dapm_dir}/dapm" "ROOT" process_dapm_component "${tmp_dir}" "${dapm_dir}/dapm" "ROOT"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment