From 96b1a15bcc4b6fcb8039074283ef834c68e455bc Mon Sep 17 00:00:00 2001 From: Anastasia Klimchuk Date: Mon, 27 Sep 2021 13:52:35 +1000 Subject: raiden_debug_spi: Move shutdown function above spi_master struct This patch prepares the programmer to use new API which allows to register shutdown function in spi_master struct. See also later patch in this chain, where the programmer is converted to new API. BUG=b:185191942 TEST=test in CB:57918 Change-Id: I567e24c9d39e24a4a1634ddcbdd05930760afcdc Signed-off-by: Anastasia Klimchuk Reviewed-on: https://review.coreboot.org/c/flashrom/+/57974 Tested-by: build bot (Jenkins) Reviewed-by: Nico Huber --- raiden_debug_spi.c | 62 +++++++++++++++++++++++++++--------------------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/raiden_debug_spi.c b/raiden_debug_spi.c index 6a7900033..a2fddb455 100644 --- a/raiden_debug_spi.c +++ b/raiden_debug_spi.c @@ -1258,6 +1258,37 @@ static int send_command_v2(const struct flashctx *flash, return status; } +static int raiden_debug_spi_shutdown(void * data) +{ + struct raiden_debug_spi_data *ctx_data = (struct raiden_debug_spi_data *)data; + struct spi_master *spi_config = ctx_data->spi_config; + + int ret = LIBUSB(libusb_control_transfer( + ctx_data->dev->handle, + LIBUSB_ENDPOINT_OUT | + LIBUSB_REQUEST_TYPE_VENDOR | + LIBUSB_RECIPIENT_INTERFACE, + RAIDEN_DEBUG_SPI_REQ_DISABLE, + 0, + ctx_data->dev->interface_descriptor->bInterfaceNumber, + NULL, + 0, + TRANSFER_TIMEOUT_MS)); + if (ret != 0) { + msg_perr("Raiden: Failed to disable SPI bridge\n"); + free(ctx_data); + free(spi_config); + return ret; + } + + usb_device_free(ctx_data->dev); + libusb_exit(NULL); + free(ctx_data); + free(spi_config); + + return 0; +} + static const struct spi_master spi_master_raiden_debug = { .features = SPI_MASTER_4BA, .max_data_read = 0, @@ -1375,37 +1406,6 @@ static int configure_protocol(struct raiden_debug_spi_data *ctx_data) return 0; } -static int raiden_debug_spi_shutdown(void * data) -{ - struct raiden_debug_spi_data *ctx_data = (struct raiden_debug_spi_data *)data; - struct spi_master *spi_config = ctx_data->spi_config; - - int ret = LIBUSB(libusb_control_transfer( - ctx_data->dev->handle, - LIBUSB_ENDPOINT_OUT | - LIBUSB_REQUEST_TYPE_VENDOR | - LIBUSB_RECIPIENT_INTERFACE, - RAIDEN_DEBUG_SPI_REQ_DISABLE, - 0, - ctx_data->dev->interface_descriptor->bInterfaceNumber, - NULL, - 0, - TRANSFER_TIMEOUT_MS)); - if (ret != 0) { - msg_perr("Raiden: Failed to disable SPI bridge\n"); - free(ctx_data); - free(spi_config); - return ret; - } - - usb_device_free(ctx_data->dev); - libusb_exit(NULL); - free(ctx_data); - free(spi_config); - - return 0; -} - static int get_ap_request_type(void) { int ap_request = RAIDEN_DEBUG_SPI_REQ_ENABLE_AP; -- cgit v1.2.3