spi: Enable tracing of the SPI setup CS selection
It is helpful to see what state of CS signal was during one or another SPI operation. All the same for SPI setup. Enable tracing of the SPI setup and CS selection. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Message-Id: <20210526195655.75691-1-andriy.shevchenko@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
ab053f48f9
commit
5cb4e1f33e
|
@ -804,6 +804,8 @@ static void spi_set_cs(struct spi_device *spi, bool enable, bool force)
|
|||
(spi->controller->last_cs_mode_high == (spi->mode & SPI_CS_HIGH)))
|
||||
return;
|
||||
|
||||
trace_spi_set_cs(spi, activate);
|
||||
|
||||
spi->controller->last_cs_enable = enable;
|
||||
spi->controller->last_cs_mode_high = spi->mode & SPI_CS_HIGH;
|
||||
|
||||
|
@ -3441,6 +3443,8 @@ int spi_setup(struct spi_device *spi)
|
|||
spi_set_thread_rt(spi->controller);
|
||||
}
|
||||
|
||||
trace_spi_setup(spi, status);
|
||||
|
||||
dev_dbg(&spi->dev, "setup mode %lu, %s%s%s%s%u bits/w, %u Hz max --> %d\n",
|
||||
spi->mode & SPI_MODE_X_MASK,
|
||||
(spi->mode & SPI_CS_HIGH) ? "cs_high, " : "",
|
||||
|
|
|
@ -42,6 +42,63 @@ DEFINE_EVENT(spi_controller, spi_controller_busy,
|
|||
|
||||
);
|
||||
|
||||
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->chip_select;
|
||||
__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->chip_select;
|
||||
__entry->mode = spi->mode;
|
||||
__entry->enable = enable;
|
||||
),
|
||||
|
||||
TP_printk("spi%d.%d %s%s",
|
||||
__entry->bus_num, __entry->chip_select,
|
||||
__entry->enable ? "activate" : "deactivate",
|
||||
(__entry->mode & SPI_CS_HIGH) ? ", cs_high" : "")
|
||||
);
|
||||
|
||||
DECLARE_EVENT_CLASS(spi_message,
|
||||
|
||||
TP_PROTO(struct spi_message *msg),
|
||||
|
|
Loading…
Reference in New Issue