diff options
author | Anastasia Klimchuk <aklm@chromium.org> | 2021-09-27 13:52:35 +1000 |
---|---|---|
committer | Nico Huber <nico.h@gmx.de> | 2021-10-10 10:24:40 +0000 |
commit | 96b1a15bcc4b6fcb8039074283ef834c68e455bc (patch) | |
tree | b5dc6cb5b7429ff09b74f06b8785fc8b520141f8 | |
parent | f8999921ea6889f4f008a921626debd2f45930be (diff) | |
download | flashrom-96b1a15bcc4b6fcb8039074283ef834c68e455bc.tar.gz flashrom-96b1a15bcc4b6fcb8039074283ef834c68e455bc.tar.bz2 flashrom-96b1a15bcc4b6fcb8039074283ef834c68e455bc.zip |
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 <aklm@chromium.org>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/57974
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nico Huber <nico.h@gmx.de>
-rw-r--r-- | raiden_debug_spi.c | 62 |
1 files changed, 31 insertions, 31 deletions
diff --git a/raiden_debug_spi.c b/raiden_debug_spi.c index 6a790003..a2fddb45 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; |