From afff79e17a7807b3b2cfe5484e0b1f15fa337981 Mon Sep 17 00:00:00 2001 From: Oleksij Rempel Date: Wed, 13 Apr 2022 10:21:58 +0200 Subject: spi: port spi_sync_transfer() function from kernel v5.17 This function is needed for SJA11xx switch driver Signed-off-by: Oleksij Rempel Link: https://lore.barebox.org/20220413082205.429509-8-o.rempel@pengutronix.de Signed-off-by: Sascha Hauer --- include/spi/spi.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'include') diff --git a/include/spi/spi.h b/include/spi/spi.h index d133e0e212..b6d08592a3 100644 --- a/include/spi/spi.h +++ b/include/spi/spi.h @@ -442,6 +442,30 @@ spi_transfer_del(struct spi_transfer *t) int spi_sync(struct spi_device *spi, struct spi_message *message); +/** + * spi_sync_transfer - synchronous SPI data transfer + * @spi: device with which data will be exchanged + * @xfers: An array of spi_transfers + * @num_xfers: Number of items in the xfer array + * Context: can sleep + * + * Does a synchronous SPI data transfer of the given spi_transfer array. + * + * For more specific semantics see spi_sync(). + * + * Return: zero on success, else a negative error code. + */ +static inline int +spi_sync_transfer(struct spi_device *spi, struct spi_transfer *xfers, + unsigned int num_xfers) +{ + struct spi_message msg; + + spi_message_init_with_transfers(&msg, xfers, num_xfers); + + return spi_sync(spi, &msg); +} + struct spi_device *spi_new_device(struct spi_controller *ctrl, struct spi_board_info *chip); int spi_register_controller(struct spi_controller *ctrl); -- cgit v1.2.3