fsi: core: Add trace events for scan and unregister

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>
This commit is contained in:
Eddie James 2023-06-12 14:56:51 -05:00 committed by Joel Stanley
parent 52300909f4
commit 02c8fec05b
2 changed files with 35 additions and 0 deletions

View File

@ -1199,6 +1199,7 @@ static int fsi_master_scan(struct fsi_master *master)
{ {
int link, rc; int link, rc;
trace_fsi_master_scan(master, true);
for (link = 0; link < master->n_links; link++) { for (link = 0; link < master->n_links; link++) {
rc = fsi_master_link_enable(master, link); rc = fsi_master_link_enable(master, link);
if (rc) { 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) 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); 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) void fsi_master_unregister(struct fsi_master *master)
{ {
trace_fsi_master_unregister(master);
if (master->idx >= 0) { if (master->idx >= 0) {
ida_simple_remove(&master_ida, master->idx); ida_simple_remove(&master_ida, master->idx);
master->idx = -1; master->idx = -1;

View 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, TRACE_EVENT(fsi_slave_init,
TP_PROTO(const struct fsi_slave *slave), TP_PROTO(const struct fsi_slave *slave),
TP_ARGS(slave), TP_ARGS(slave),