include/trace/events/spi.h

Source file repositories/reference/linux-study-clean/include/trace/events/spi.h

File Facts

System
Linux kernel
Corpus path
include/trace/events/spi.h
Extension
.h
Size
6002 bytes
Lines
240
Domain
Repository Root And Misc
Bucket
include
Inferred role
Repository Root And Misc: implementation source
Status
source implementation candidate

Why This File Exists

Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.

Dependency Surface

Detected Declarations

Annotated Snippet

#undef TRACE_SYSTEM
#define TRACE_SYSTEM spi

#if !defined(_TRACE_SPI_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_SPI_H

#include <linux/ktime.h>
#include <linux/tracepoint.h>

DECLARE_EVENT_CLASS(spi_controller,

	TP_PROTO(struct spi_controller *controller),

	TP_ARGS(controller),

	TP_STRUCT__entry(
		__field(        int,           bus_num             )
	),

	TP_fast_assign(
		__entry->bus_num = controller->bus_num;
	),

	TP_printk("spi%d", (int)__entry->bus_num)

);

DEFINE_EVENT(spi_controller, spi_controller_idle,

	TP_PROTO(struct spi_controller *controller),

	TP_ARGS(controller)

);

DEFINE_EVENT(spi_controller, spi_controller_busy,

	TP_PROTO(struct spi_controller *controller),

	TP_ARGS(controller)

);

TRACE_EVENT(spi_setup,
	TP_PROTO(struct spi_device *spi, int status),
	TP_ARGS(spi, status),

	TP_STRUCT__entry(
		__field(int, bus_num)
		__field(int, chip_select)
		__field(unsigned long, mode)
		__field(unsigned int, bits_per_word)
		__field(unsigned int, max_speed_hz)
		__field(int, status)
	),

	TP_fast_assign(
		__entry->bus_num = spi->controller->bus_num;
		__entry->chip_select =  spi_get_chipselect(spi, 0);
		__entry->mode = spi->mode;
		__entry->bits_per_word = spi->bits_per_word;
		__entry->max_speed_hz = spi->max_speed_hz;
		__entry->status = status;
	),

	TP_printk("spi%d.%d setup mode %lu, %s%s%s%s%u bits/w, %u Hz max --> %d",
		  __entry->bus_num, __entry->chip_select,
		  (__entry->mode & SPI_MODE_X_MASK),
		  (__entry->mode & SPI_CS_HIGH) ? "cs_high, " : "",
		  (__entry->mode & SPI_LSB_FIRST) ? "lsb, " : "",
		  (__entry->mode & SPI_3WIRE) ? "3wire, " : "",
		  (__entry->mode & SPI_LOOP) ? "loopback, " : "",
		  __entry->bits_per_word, __entry->max_speed_hz,
		  __entry->status)
);

TRACE_EVENT(spi_set_cs,
	TP_PROTO(struct spi_device *spi, bool enable),
	TP_ARGS(spi, enable),

	TP_STRUCT__entry(
		__field(int, bus_num)
		__field(int, chip_select)
		__field(unsigned long, mode)
		__field(bool, enable)
	),

	TP_fast_assign(
		__entry->bus_num = spi->controller->bus_num;
		__entry->chip_select = spi_get_chipselect(spi, 0);

Annotation

Implementation Notes