1From d8379ec6365a925db33cae94fb6783cdbdb6a922 Mon Sep 17 00:00:00 2001 2From: Kienan Stewart <kstewart@efficios.com> 3Date: Mon, 25 Mar 2024 09:40:29 -0400 4Subject: [PATCH 2/4] Fix: ASoC add component to set_bias_level events in linux 5 6.9-rc1 6 7See upstream commit: 8 9 commit 6ef46a69ec32fe1cf56de67742fcd01af4bf48af 10 Author: Luca Ceresoli <luca.ceresoli@bootlin.com> 11 Date: Wed Mar 6 10:30:00 2024 +0100 12 13 ASoC: trace: add component to set_bias_level trace events 14 15 The snd_soc_bias_level_start and snd_soc_bias_level_done trace events 16 currently look like: 17 18 aplay-229 [000] 1250.140778: snd_soc_bias_level_start: card=vscn-2046 val=1 19 aplay-229 [000] 1250.140784: snd_soc_bias_level_done: card=vscn-2046 val=1 20 aplay-229 [000] 1250.140786: snd_soc_bias_level_start: card=vscn-2046 val=2 21 aplay-229 [000] 1250.140788: snd_soc_bias_level_done: card=vscn-2046 val=2 22 kworker/u8:1-21 [000] 1250.140871: snd_soc_bias_level_start: card=vscn-2046 val=1 23 kworker/u8:0-11 [000] 1250.140951: snd_soc_bias_level_start: card=vscn-2046 val=1 24 kworker/u8:0-11 [000] 1250.140956: snd_soc_bias_level_done: card=vscn-2046 val=1 25 kworker/u8:0-11 [000] 1250.140959: snd_soc_bias_level_start: card=vscn-2046 val=2 26 kworker/u8:0-11 [000] 1250.140961: snd_soc_bias_level_done: card=vscn-2046 val=2 27 kworker/u8:1-21 [000] 1250.167219: snd_soc_bias_level_done: card=vscn-2046 val=1 28 kworker/u8:1-21 [000] 1250.167222: snd_soc_bias_level_start: card=vscn-2046 val=2 29 kworker/u8:1-21 [000] 1250.167232: snd_soc_bias_level_done: card=vscn-2046 val=2 30 kworker/u8:0-11 [000] 1250.167440: snd_soc_bias_level_start: card=vscn-2046 val=3 31 kworker/u8:0-11 [000] 1250.167444: snd_soc_bias_level_done: card=vscn-2046 val=3 32 kworker/u8:1-21 [000] 1250.167497: snd_soc_bias_level_start: card=vscn-2046 val=3 33 kworker/u8:1-21 [000] 1250.167506: snd_soc_bias_level_done: card=vscn-2046 val=3 34 35 There are clearly multiple calls, one per component, but they cannot be 36 discriminated from each other. 37 38 Change the ftrace events to also print the component name, to make it clear 39 which part of the code is involved. This requires changing the passed value 40 from a struct snd_soc_card, where the DAPM context is not kwown, to a 41 struct snd_soc_dapm_context where it is obviously known but the a card 42 pointer is also available. 43 44 With this change, the resulting trace becomes: 45 46 aplay-247 [000] 1436.357332: snd_soc_bias_level_start: card=vscn-2046 component=(none) val=1 47 aplay-247 [000] 1436.357338: snd_soc_bias_level_done: card=vscn-2046 component=(none) val=1 48 aplay-247 [000] 1436.357340: snd_soc_bias_level_start: card=vscn-2046 component=(none) val=2 49 aplay-247 [000] 1436.357343: snd_soc_bias_level_done: card=vscn-2046 component=(none) val=2 50 kworker/u8:4-215 [000] 1436.357437: snd_soc_bias_level_start: card=vscn-2046 component=ff560000.codec val=1 51 kworker/u8:5-231 [000] 1436.357518: snd_soc_bias_level_start: card=vscn-2046 component=ff320000.i2s val=1 52 kworker/u8:5-231 [000] 1436.357523: snd_soc_bias_level_done: card=vscn-2046 component=ff320000.i2s val=1 53 kworker/u8:5-231 [000] 1436.357526: snd_soc_bias_level_start: card=vscn-2046 component=ff320000.i2s val=2 54 kworker/u8:5-231 [000] 1436.357528: snd_soc_bias_level_done: card=vscn-2046 component=ff320000.i2s val=2 55 kworker/u8:4-215 [000] 1436.383217: snd_soc_bias_level_done: card=vscn-2046 component=ff560000.codec val=1 56 kworker/u8:4-215 [000] 1436.383221: snd_soc_bias_level_start: card=vscn-2046 component=ff560000.codec val=2 57 kworker/u8:4-215 [000] 1436.383231: snd_soc_bias_level_done: card=vscn-2046 component=ff560000.codec val=2 58 kworker/u8:5-231 [000] 1436.383468: snd_soc_bias_level_start: card=vscn-2046 component=ff320000.i2s val=3 59 kworker/u8:5-231 [000] 1436.383472: snd_soc_bias_level_done: card=vscn-2046 component=ff320000.i2s val=3 60 kworker/u8:4-215 [000] 1436.383503: snd_soc_bias_level_start: card=vscn-2046 component=ff560000.codec val=3 61 kworker/u8:4-215 [000] 1436.383513: snd_soc_bias_level_done: card=vscn-2046 component=ff560000.codec val=3 62 63Upstream-Status: Backport [303434ab Fix: ASoC add component to set_bias_level events in linux 6.9-rc1] 64 65Change-Id: I959f1680c002acdf29828b968d3975247f5433d8 66Signed-off-by: Kienan Stewart <kstewart@efficios.com> 67Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> 68--- 69 include/instrumentation/events/asoc.h | 36 +++++++++++++++++++++++++++ 70 1 file changed, 36 insertions(+) 71 72Index: lttng-modules-2.13.12/include/instrumentation/events/asoc.h 73=================================================================== 74--- lttng-modules-2.13.12.orig/include/instrumentation/events/asoc.h 75+++ lttng-modules-2.13.12/include/instrumentation/events/asoc.h 76@@ -10,6 +10,7 @@ 77 #include <lttng/kernel-version.h> 78 79 #define DAPM_DIRECT "(direct)" 80+#define DAPM_COMPONENT_NONE "(none)" 81 82 #ifndef _TRACE_ASOC_DEF 83 #define _TRACE_ASOC_DEF 84@@ -119,6 +120,40 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc 85 ) 86 #endif 87 88+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,9,0)) 89+LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_dapm_context, 90+ 91+ TP_PROTO(struct snd_soc_dapm_context *dapm, int val), 92+ 93+ TP_ARGS(dapm, val), 94+ 95+ TP_FIELDS( 96+ ctf_string(name, dapm->card->name) 97+ ctf_string(component, dapm->component ? dapm->component->name : DAPM_COMPONENT_NONE) 98+ ctf_integer(int, val, val) 99+ ) 100+) 101+ 102+LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_context, snd_soc_bias_level_start, 103+ 104+ asoc_snd_soc_bias_level_start, 105+ 106+ TP_PROTO(struct snd_soc_dapm_context *dapm, int val), 107+ 108+ TP_ARGS(dapm, val) 109+ 110+) 111+ 112+LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc_snd_soc_dapm_context, snd_soc_bias_level_done, 113+ 114+ asoc_snd_soc_bias_level_done, 115+ 116+ TP_PROTO(struct snd_soc_dapm_context *dapm, int val), 117+ 118+ TP_ARGS(dapm, val) 119+ 120+) 121+#else 122 LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_card, 123 124 TP_PROTO(struct snd_soc_card *card, int val), 125@@ -150,6 +185,7 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(asoc 126 TP_ARGS(card, val) 127 128 ) 129+#endif 130 131 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,9,0)) 132 LTTNG_TRACEPOINT_EVENT_CLASS(asoc_snd_soc_dapm_basic, 133