Skip to content

Commit e36eba4

Browse files
ukleinekbroonie
authored andcommitted
spi: axi-spi-engine: Emit trace events for spi transfers
As this spi host controller driver implements the .transfer_one_message() callback, it has to care about these traces it-self. With the transfers being compiled it's difficult to determine where handling of one transfer ends and the next begins, so just generate the start events in batch before the hardware fifo is fed and the end events when their completion triggered. Signed-off-by: Uwe Kleine-König <[email protected]> Reviewed-by: David Lechner <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Mark Brown <[email protected]>
1 parent 8a9c132 commit e36eba4

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

drivers/spi/spi-axi-spi-engine.c

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include <linux/overflow.h>
1616
#include <linux/platform_device.h>
1717
#include <linux/spi/spi.h>
18+
#include <trace/events/spi.h>
1819

1920
#define SPI_ENGINE_REG_RESET 0x40
2021

@@ -590,6 +591,13 @@ static int spi_engine_transfer_one_message(struct spi_controller *host,
590591

591592
reinit_completion(&spi_engine->msg_complete);
592593

594+
if (trace_spi_transfer_start_enabled()) {
595+
struct spi_transfer *xfer;
596+
597+
list_for_each_entry(xfer, &msg->transfers, transfer_list)
598+
trace_spi_transfer_start(msg, xfer);
599+
}
600+
593601
spin_lock_irqsave(&spi_engine->lock, flags);
594602

595603
if (spi_engine_write_cmd_fifo(spi_engine, msg))
@@ -617,6 +625,13 @@ static int spi_engine_transfer_one_message(struct spi_controller *host,
617625
msg->status = -ETIMEDOUT;
618626
}
619627

628+
if (trace_spi_transfer_stop_enabled()) {
629+
struct spi_transfer *xfer;
630+
631+
list_for_each_entry(xfer, &msg->transfers, transfer_list)
632+
trace_spi_transfer_stop(msg, xfer);
633+
}
634+
620635
spi_finalize_current_message(host);
621636

622637
return msg->status;

0 commit comments

Comments
 (0)