From nobody Thu Feb 12 20:24:38 2026 Received: from relay3-d.mail.gandi.net (relay3-d.mail.gandi.net [217.70.183.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CFCF3156985; Fri, 7 Jun 2024 07:42:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.70.183.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717746146; cv=none; b=u8Etf6pojYiAWUxmnmi0mqh72+/lhCc+oyVYpi3zRHxe0LmJ/H4YdCI+BioKIl09nZiI+NjiP2Xciapuem6M04ERuuz4mUkaTSDoW0npFcfopk9D/SbL2pMNvtIpXTM/bxNlpw+kqgkPBrl6zLAPDikraI8jOjxonKuwdFfcAOw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717746146; c=relaxed/simple; bh=1khzek1mpOyskhV/WZJAoR8W6Qt/xyLFvHy3BHVUR0U=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To; b=U2rYteKKrHr/4zwYprpHThwVG6v/LQL0JxQZYTxl/qEnX7Vp8TAme5j14KQNPvtWBSr0NO6uLngdR9KRwYUjjgdl/Ro6T5OZ3oQt/fZkpUUJ/Upi2IaQLHsaHH+XNMF6iq3IkFx25adp2TD/4nQ4r/EHv0fQ5viuSAyiyuW6Ouc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=B2JjAFj9; arc=none smtp.client-ip=217.70.183.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="B2JjAFj9" Received: by mail.gandi.net (Postfix) with ESMTPSA id 8717260004; Fri, 7 Jun 2024 07:42:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1717746135; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7KUdMPyYR+5v/qbEBCxK1PceiwD8jwTiahptQXtojpk=; b=B2JjAFj9CoeN0CWOb2n9PHWt6MmdcWkgMWEfv8w/G+ipd/tOm0sSvctSuRV3HYBV1Hhm6q +Pt0mecagM4T7L+J450fXAQ2IH0iosTdL+kscRHlu+gGeY8SHLwobF4/w+9eNVwinjcnTd zp5hV9xlv0kboXXbBmePOJLcMyz++Jpuk96vK9NLKcIrcR37GzkIZL+n5tyEpp42RgBzgp IAifIVNQwMoV9fXxZzV3i6eyzJdsSdbFdrK8d2zZI7HkLS/N8MePAXqYK+ylV0mcQLPvrw 1kE/zkniWPuTH3Vgc1Ox/mZIQRQnIBqLjgHg1w0GYr56hTv+4mDUTunNHIu/fA== From: Luca Ceresoli Date: Fri, 07 Jun 2024 09:41:51 +0200 Subject: [PATCH 1/3] ASoC: dapm-graph: remove the "ROOT" cluster Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20240607-dapm-graph-v1-1-bb302970d055@bootlin.com> References: <20240607-dapm-graph-v1-0-bb302970d055@bootlin.com> In-Reply-To: <20240607-dapm-graph-v1-0-bb302970d055@bootlin.com> To: Alexandre Belloni , Thomas Petazzoni , linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, Luca Ceresoli X-Mailer: b4 0.13.0 X-GND-Sasl: luca.ceresoli@bootlin.com 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 --- tools/sound/dapm-graph | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/tools/sound/dapm-graph b/tools/sound/dapm-graph index 57d78f6df041..205783d124d3 100755 --- a/tools/sound/dapm-graph +++ b/tools/sound/dapm-graph @@ -150,29 +150,32 @@ process_dapm_widget() # # $1 =3D temporary work dir # $2 =3D component directory -# $3 =3D forced component name (extracted for path if empty) +# $3 =3D "ROOT" for the root card directory, empty otherwise process_dapm_component() { local tmp_dir=3D"${1}" local c_dir=3D"${2}" local c_name=3D"${3}" + local is_component=3D0 local dot_file=3D"${tmp_dir}/main.dot" local links_file=3D"${tmp_dir}/links.dot" =20 if [ -z "${c_name}" ]; then + is_component=3D1 + # Extract directory name into component name: # "./cs42l51.0-004a/dapm" -> "cs42l51.0-004a" c_name=3D"$(basename $(dirname "${c_dir}"))" + + echo "" >> "${dot_file}" + echo " subgraph \"${c_name}\" {" >> "${dot_file}" + echo " cluster =3D true" >> "${dot_file}" + echo " label =3D \"${c_name}\"" >> "${dot_file}" + echo " color=3Ddodgerblue" >> "${dot_file}" fi =20 dbg_echo " * Component: ${c_name}" =20 - echo "" >> "${dot_file}" - echo " subgraph \"${c_name}\" {" >> "${dot_file}" - echo " cluster =3D true" >> "${dot_file}" - echo " label =3D \"${c_name}\"" >> "${dot_file}" - echo " color=3Ddodgerblue" >> "${dot_file}" - # Create empty file to ensure it will exist in all cases >"${links_file}" =20 @@ -181,7 +184,9 @@ process_dapm_component() process_dapm_widget "${tmp_dir}" "${c_name}" "${w_file}" done =20 - echo " }" >> "${dot_file}" + if [ ${is_component} =3D 1 ]; then + echo " }" >> "${dot_file}" + fi =20 cat "${links_file}" >> "${dot_file}" } --=20 2.34.1 From nobody Thu Feb 12 20:24:38 2026 Received: from relay3-d.mail.gandi.net (relay3-d.mail.gandi.net [217.70.183.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CFD3C156997; Fri, 7 Jun 2024 07:42:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.70.183.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717746145; cv=none; b=mANqLRP/YIEPdkahKWHCKj1zQ8/w+hexYnzEe4hFHW1j+6+VTS5mw5a5Ihex9PZTln9qBj7WEXUcl2ZewRfNTqraMlfjywnWvJsnEAmaknTYULak8fpTLrxdqNaJC+S5Ys/bPFL0whbxsw6xAKIbm2alF53IeaaCwujrJentXcQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717746145; c=relaxed/simple; bh=fAFSa1046tLaQ2J5k9hk59fp/d6a1Ubet9Edv7wJS/4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To; b=oCNOjkmM+jJlteNMJV0co/r57O/iw12KAGXeUvcmiprAL4BY8a8tEB/jl37G3pA7vE0AUiM8DXkPz51TEQEEBd2DiB58BL4SLcrvzoBrEcgKWEbeLcgXMkacbKUfhrJZV4pNQEpxiUtfm+Fw5YsS+0bhuEG6zWCGu/WsZQWLlTQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=lAoM52O5; arc=none smtp.client-ip=217.70.183.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="lAoM52O5" Received: by mail.gandi.net (Postfix) with ESMTPSA id E540B60009; Fri, 7 Jun 2024 07:42:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1717746136; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=8caC1Z562fBuPuBKeXYHWprDTaCdN40rYBd8+JqzFkQ=; b=lAoM52O50FVKPAywDp4p98XiACQXsgwxXMmZ2OMl+XzwepfGmd7D4TEYrZXrIXWH8+RbQ+ MZgZ/dLfi5dEK+B5RUrIKtrYqUftTCWYabhgTm+cwV+vkXTChbjU2kX1TSXpQ3mOlyIQ55 0x7E8XE3GWAamIs2Lyl40CFaWURVARxV2s9gjfgl7UJ7du5wrdWQ2YtGF4wMGyP7A1e/f6 CPCUH+lAqwMGXdYWQIsJuXvfwaAJPsbm5OLEyY5fq6UPZWg2jkP22EiEk9oPluWZ4XhXRY hx3L20yxzyAzd/+uOKMt7lG+D39k+/MQpXlWbJSIcw6+Ox6aewiXX9tkadu6og== From: Luca Ceresoli Date: Fri, 07 Jun 2024 09:41:52 +0200 Subject: [PATCH 2/3] ASoC: dapm-graph: visualize component On/Off bias level Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20240607-dapm-graph-v1-2-bb302970d055@bootlin.com> References: <20240607-dapm-graph-v1-0-bb302970d055@bootlin.com> In-Reply-To: <20240607-dapm-graph-v1-0-bb302970d055@bootlin.com> To: Alexandre Belloni , Thomas Petazzoni , linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, Luca Ceresoli X-Mailer: b4 0.13.0 X-GND-Sasl: luca.ceresoli@bootlin.com 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 --- tools/sound/dapm-graph | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/tools/sound/dapm-graph b/tools/sound/dapm-graph index 205783d124d3..4e90883912d0 100755 --- a/tools/sound/dapm-graph +++ b/tools/sound/dapm-graph @@ -8,6 +8,8 @@ =20 set -eu =20 +STYLE_COMPONENT_ON=3D"color=3Ddodgerblue;style=3Dbold" +STYLE_COMPONENT_OFF=3D"color=3Dgray40;style=3Dfilled;fillcolor=3Dgray90" STYLE_NODE_ON=3D"shape=3Dbox,style=3Dbold,color=3Dgreen4" STYLE_NODE_OFF=3D"shape=3Dbox,style=3Dfilled,color=3Dgray30,fillcolor=3Dgr= ay95" =20 @@ -159,6 +161,7 @@ process_dapm_component() local is_component=3D0 local dot_file=3D"${tmp_dir}/main.dot" local links_file=3D"${tmp_dir}/links.dot" + local c_attribs=3D"" =20 if [ -z "${c_name}" ]; then is_component=3D1 @@ -166,16 +169,28 @@ process_dapm_component() # Extract directory name into component name: # "./cs42l51.0-004a/dapm" -> "cs42l51.0-004a" c_name=3D"$(basename $(dirname "${c_dir}"))" + fi + + dbg_echo " * Component: ${c_name}" + + if [ ${is_component} =3D 1 ]; then + if [ -f "${c_dir}/bias_level" ]; then + c_onoff=3D$(sed -n -e 1p "${c_dir}/bias_level" | awk '{print $1}') + dbg_echo " - bias_level: ${c_onoff}" + if [ "$c_onoff" =3D "On" ]; then + c_attribs=3D"${STYLE_COMPONENT_ON}" + elif [ "$c_onoff" =3D "Off" ]; then + c_attribs=3D"${STYLE_COMPONENT_OFF}" + fi + fi =20 echo "" >> "${dot_file}" echo " subgraph \"${c_name}\" {" >> "${dot_file}" echo " cluster =3D true" >> "${dot_file}" echo " label =3D \"${c_name}\"" >> "${dot_file}" - echo " color=3Ddodgerblue" >> "${dot_file}" + echo " ${c_attribs}" >> "${dot_file}" fi =20 - dbg_echo " * Component: ${c_name}" - # Create empty file to ensure it will exist in all cases >"${links_file}" =20 --=20 2.34.1 From nobody Thu Feb 12 20:24:38 2026 Received: from relay3-d.mail.gandi.net (relay3-d.mail.gandi.net [217.70.183.195]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CFCB750285; Fri, 7 Jun 2024 07:42:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.70.183.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717746146; cv=none; b=iu2JJ7vQV5REAtSx/EDtLKheC//lgCUZ6PA5LAFZDJlqxfaPrDAIIuT5+hnj1Zr7GXJzZ1wpUPdxh2dthKSBD7T8AAckThSngAUoQQ9Ej2RezgXW8Pt5WieRmtp7UHW1haxRIpy/UsDsCEhAQ7kBtqoS49wrZYlIt7LcAY2z/a8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717746146; c=relaxed/simple; bh=PhiycFAZ6DUxwrLFqux1DsdRyTs30I96gw95dsbO5ZE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To; b=McNicgtuFv9T95amBJH0FPeIkdB3D/CJE4irZdhU1b1tdBH373eFV//e5fWQLftPjB5xGouIveSeq3E9vSiqQ3Zlp/bdpa8cBIVvu4DbtoNJknid7oKJ4F1Fe0Xh6TPUvIirIAM5lGt2FofYder4WomXpn2AyaiGsOP00wNFou8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=bGLtI+gn; arc=none smtp.client-ip=217.70.183.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="bGLtI+gn" Received: by mail.gandi.net (Postfix) with ESMTPSA id 51F486000A; Fri, 7 Jun 2024 07:42:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1717746136; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=gVscAZKiR7cHF1VmeHRXuAuQ1Thqw8JJ9KJo8HLfQHg=; b=bGLtI+gnU1AcvzCe7Xw8E82+QtPHHHpNxS6z/FX+nI+OjufS7pgrwTWhVPEVx/RoM8huSc bjGGZjPFcEvIZ3VrsKl8XwOnQauuBQBBDlogkgoBV7vUGVX/UuCAiewCT/3zosyyOQOVOU tUjPn8/miCoWbCUMVzIXsKXVPbzZl2sltZ7uut/Hm+mlr2duHwrcO5xHieCPoOe4yvIM+g 41NIf94mH3y1RHufj7YdrX7NT0IueQ2gOi0JBjTXLzZ5eYVn4O9qP9nbNuLkQZcng44I9W dMbswMp3UN2TsdxCDyDn9cbuj9+8gPUClblF12263zZzqjDtOXrRXFFj/pDukw== From: Luca Ceresoli Date: Fri, 07 Jun 2024 09:41:53 +0200 Subject: [PATCH 3/3] ASoC: dapm-graph: show path name for non-static routes Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20240607-dapm-graph-v1-3-bb302970d055@bootlin.com> References: <20240607-dapm-graph-v1-0-bb302970d055@bootlin.com> In-Reply-To: <20240607-dapm-graph-v1-0-bb302970d055@bootlin.com> To: Alexandre Belloni , Thomas Petazzoni , linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, Luca Ceresoli X-Mailer: b4 0.13.0 X-GND-Sasl: luca.ceresoli@bootlin.com 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 --- tools/sound/dapm-graph | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tools/sound/dapm-graph b/tools/sound/dapm-graph index 4e90883912d0..f14bdfedee8f 100755 --- a/tools/sound/dapm-graph +++ b/tools/sound/dapm-graph @@ -134,11 +134,17 @@ process_dapm_widget() # Collect any links. We could use "in" links or "out" links, # let's use "in" links if echo "${line}" | grep -q '^in '; then + local w_route=3D$(echo "$line" | awk -F\" '{print $2}') local w_src=3D$(echo "$line" | awk -F\" '{print $6 "_" $4}' | sed 's/^(null)_/ROOT_/') dbg_echo " - Input route from: ${w_src}" - echo " \"${w_src}\" -> \"$w_tag\"" >> "${links_file}" + dbg_echo " - Route: ${w_route}" + local w_edge_attrs=3D"" + if [ "${w_route}" !=3D "static" ]; then + w_edge_attrs=3D" [label=3D\"${w_route}\"]" + fi + echo " \"${w_src}\" -> \"$w_tag\"${w_edge_attrs}" >> "${links_file}" fi done =20 @@ -220,7 +226,7 @@ process_dapm_tree() echo "digraph G {" > "${dot_file}" echo " fontname=3D\"sans-serif\"" >> "${dot_file}" echo " node [fontname=3D\"sans-serif\"]" >> "${dot_file}" - + echo " edge [fontname=3D\"sans-serif\"]" >> "${dot_file}" =20 # Process root directory (no component) process_dapm_component "${tmp_dir}" "${dapm_dir}/dapm" "ROOT" --=20 2.34.1