From 5a73eb7d1b727b9cc11cc94ab807ffbd25cdb268 Mon Sep 17 00:00:00 2001 From: Anastasia Klimchuk Date: Mon, 27 Sep 2021 11:16:40 +1000 Subject: [PATCH] raiden_debug_spi: Link spi_master struct to spi data For this programmer, spi_master struct is dynamically allocated and needs to be freed on shutdown. Adding a pointer to spi data struct allows to link spi_master from spi data, which in turn allows to pass spi data into shutdown function. As a result, both register_spi_master and register_shutdown use the same data, and this unblocks moving raiden_debug_spi to new API (like all the other spi masters in commit a69c5196d20d136b1de120f0fa5ea1e06c3776da). See further patches in this chain. BUG=b:185191942 TEST=test in CB:57918 Change-Id: I5400802aa6961538df12fcd5339f7e2a5db145a1 Signed-off-by: Anastasia Klimchuk Reviewed-on: https://review.coreboot.org/c/flashrom/+/57972 Tested-by: build bot (Jenkins) Reviewed-by: Nico Huber --- raiden_debug_spi.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/raiden_debug_spi.c b/raiden_debug_spi.c index 92779fc5f..9cba2a80c 100644 --- a/raiden_debug_spi.c +++ b/raiden_debug_spi.c @@ -441,6 +441,7 @@ struct raiden_debug_spi_data { */ uint16_t max_spi_write_count; uint16_t max_spi_read_count; + struct spi_master *spi_config; }; /* * USB permits a maximum bulk transfer of 64B. @@ -1377,9 +1378,8 @@ static int configure_protocol(struct spi_master *spi_config) static int raiden_debug_spi_shutdown(void * data) { - struct spi_master *spi_config = data; - struct raiden_debug_spi_data *ctx_data = - (struct raiden_debug_spi_data *)spi_config->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, @@ -1594,6 +1594,7 @@ loop_end: data->dev = device; data->in_ep = in_endpoint; data->out_ep = out_endpoint; + data->spi_config = spi_config; spi_config->data = data; /* data is needed to configure protocol below */ /* @@ -1613,7 +1614,7 @@ loop_end: } register_spi_master(spi_config, data); - register_shutdown(raiden_debug_spi_shutdown, spi_config); + register_shutdown(raiden_debug_spi_shutdown, data); return 0; }