fsi: core: Add trace events for scan and unregister
authorEddie James <eajames@linux.ibm.com>
Mon, 12 Jun 2023 19:56:51 +0000 (14:56 -0500)
committerJoel Stanley <joel@jms.id.au>
Wed, 9 Aug 2023 06:13:28 +0000 (15:43 +0930)
Add more trace events for the scanning and unregistration
functions for debug purposes.

Signed-off-by: Eddie James <eajames@linux.ibm.com>
Reviewed-by: Joel Stanley <joel@jms.id.au>
Link: https://lore.kernel.org/r/20230612195657.245125-9-eajames@linux.ibm.com
Signed-off-by: Joel Stanley <joel@jms.id.au>
drivers/fsi/fsi-core.c
include/trace/events/fsi.h

index 8cf50d9..161c458 100644 (file)
@@ -1199,6 +1199,7 @@ static int fsi_master_scan(struct fsi_master *master)
 {
        int link, rc;
 
+       trace_fsi_master_scan(master, true);
        for (link = 0; link < master->n_links; link++) {
                rc = fsi_master_link_enable(master, link);
                if (rc) {
@@ -1240,6 +1241,7 @@ static int fsi_master_remove_slave(struct device *dev, void *arg)
 
 static void fsi_master_unscan(struct fsi_master *master)
 {
+       trace_fsi_master_scan(master, false);
        device_for_each_child(&master->dev, NULL, fsi_master_remove_slave);
 }
 
@@ -1328,6 +1330,8 @@ EXPORT_SYMBOL_GPL(fsi_master_register);
 
 void fsi_master_unregister(struct fsi_master *master)
 {
+       trace_fsi_master_unregister(master);
+
        if (master->idx >= 0) {
                ida_simple_remove(&master_ida, master->idx);
                master->idx = -1;
index c9a72e8..5ff1512 100644 (file)
@@ -122,6 +122,37 @@ TRACE_EVENT(fsi_master_break,
        )
 );
 
+TRACE_EVENT(fsi_master_scan,
+       TP_PROTO(const struct fsi_master *master, bool scan),
+       TP_ARGS(master, scan),
+       TP_STRUCT__entry(
+               __field(int,    master_idx)
+               __field(int,    n_links)
+               __field(bool,   scan)
+       ),
+       TP_fast_assign(
+               __entry->master_idx = master->idx;
+               __entry->n_links = master->n_links;
+               __entry->scan = scan;
+       ),
+       TP_printk("fsi%d (%d links) %s", __entry->master_idx, __entry->n_links,
+                 __entry->scan ? "scan" : "unscan")
+);
+
+TRACE_EVENT(fsi_master_unregister,
+       TP_PROTO(const struct fsi_master *master),
+       TP_ARGS(master),
+       TP_STRUCT__entry(
+               __field(int,    master_idx)
+               __field(int,    n_links)
+       ),
+       TP_fast_assign(
+               __entry->master_idx = master->idx;
+               __entry->n_links = master->n_links;
+       ),
+       TP_printk("fsi%d (%d links)", __entry->master_idx, __entry->n_links)
+);
+
 TRACE_EVENT(fsi_slave_init,
        TP_PROTO(const struct fsi_slave *slave),
        TP_ARGS(slave),