summaryrefslogtreecommitdiffstats
path: root/raiden_debug_spi.c
diff options
context:
space:
mode:
authorAnastasia Klimchuk <aklm@chromium.org>2021-09-27 13:52:35 +1000
committerNico Huber <nico.h@gmx.de>2021-10-10 10:24:40 +0000
commit96b1a15bcc4b6fcb8039074283ef834c68e455bc (patch)
treeb5dc6cb5b7429ff09b74f06b8785fc8b520141f8 /raiden_debug_spi.c
parentf8999921ea6889f4f008a921626debd2f45930be (diff)
downloadflashrom-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>
Diffstat (limited to 'raiden_debug_spi.c')
-rw-r--r--raiden_debug_spi.c62
1 files 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;