1
0
mirror of https://review.coreboot.org/flashrom.git synced 2025-04-27 15:12:36 +02:00

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>
This commit is contained in:
Anastasia Klimchuk 2021-09-27 13:52:35 +10:00 committed by Nico Huber
parent f8999921ea
commit 96b1a15bcc

View File

@ -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;