Anastasia Klimchuk has uploaded this change for review. ( https://review.coreboot.org/c/flashrom/+/57972 )
Change subject: raiden_debug_spi: Link spi_master struct to spi data ......................................................................
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 aklm@chromium.org --- M raiden_debug_spi.c 1 file changed, 5 insertions(+), 4 deletions(-)
git pull ssh://review.coreboot.org:29418/flashrom refs/changes/72/57972/1
diff --git a/raiden_debug_spi.c b/raiden_debug_spi.c index 92779fc..9cba2a8 100644 --- a/raiden_debug_spi.c +++ b/raiden_debug_spi.c @@ -441,6 +441,7 @@ */ 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 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 @@ 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 @@ }
register_spi_master(spi_config, data); - register_shutdown(raiden_debug_spi_shutdown, spi_config); + register_shutdown(raiden_debug_spi_shutdown, data);
return 0; }