summaryrefslogtreecommitdiffstats
path: root/drivers/staging/greybus/greybus_trace.h
diff options
context:
space:
mode:
authorAlex Elder2016-05-24 06:05:31 +0200
committerGreg Kroah-Hartman2016-05-27 07:37:19 +0200
commit5451ea0e99cb7d58cbf90c7785cb50cc322a4434 (patch)
treed2f234e099db0eeb91e426f8732e41776899ffb9 /drivers/staging/greybus/greybus_trace.h
parentgreybus: tracing: fix hd traces (diff)
downloadkernel-qcow2-linux-5451ea0e99cb7d58cbf90c7785cb50cc322a4434.tar.gz
kernel-qcow2-linux-5451ea0e99cb7d58cbf90c7785cb50cc322a4434.tar.xz
kernel-qcow2-linux-5451ea0e99cb7d58cbf90c7785cb50cc322a4434.zip
greybus: tracing: add module traces
Define a new gb_module trace point event class, used to trace events associated with the module abstraction. Define four basic trace points for this--creation time, drop of last reference, before registring interfaces and after de-registering them. Signed-off-by: Alex Elder <elder@linaro.org> Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Diffstat (limited to 'drivers/staging/greybus/greybus_trace.h')
-rw-r--r--drivers/staging/greybus/greybus_trace.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/drivers/staging/greybus/greybus_trace.h b/drivers/staging/greybus/greybus_trace.h
index cbbc9596c78e..ecf225394b20 100644
--- a/drivers/staging/greybus/greybus_trace.h
+++ b/drivers/staging/greybus/greybus_trace.h
@@ -156,6 +156,59 @@ DEFINE_OPERATION_EVENT(gb_operation_put_active);
#undef DEFINE_OPERATION_EVENT
+DECLARE_EVENT_CLASS(gb_module,
+
+ TP_PROTO(struct gb_module *module),
+
+ TP_ARGS(module),
+
+ TP_STRUCT__entry(
+ __field(int, hd_bus_id)
+ __field(u8, module_id)
+ __field(u8, num_interfaces)
+ __field(bool, disconnected)
+ ),
+
+ TP_fast_assign(
+ __entry->hd_bus_id = module->hd->bus_id;
+ __entry->module_id = module->module_id;
+ __entry->disconnected = module->disconnected;
+ ),
+
+ TP_printk("greybus: hd_bus_id=%d module_id=%hhu disconnected=%u",
+ __entry->hd_bus_id, __entry->module_id, __entry->disconnected)
+);
+
+#define DEFINE_MODULE_EVENT(name) \
+ DEFINE_EVENT(gb_module, name, \
+ TP_PROTO(struct gb_module *module), \
+ TP_ARGS(module))
+
+/*
+ * Occurs after a new module is successfully created, before
+ * creating any of its interfaces.
+ */
+DEFINE_MODULE_EVENT(gb_module_create);
+
+/*
+ * Occurs after the last reference to a module has been dropped.
+ */
+DEFINE_MODULE_EVENT(gb_module_release);
+
+/*
+ * Occurs after a module is successfully created, before registering
+ * any of its interfaces.
+ */
+DEFINE_MODULE_EVENT(gb_module_add);
+
+/*
+ * Occurs when a module is deleted, before deregistering its
+ * interfaces.
+ */
+DEFINE_MODULE_EVENT(gb_module_del);
+
+#undef DEFINE_MODULE_EVENT
+
DECLARE_EVENT_CLASS(gb_host_device,
TP_PROTO(struct gb_host_device *hd),