diff options
author | Anastasia Klimchuk <aklm@chromium.org> | 2021-09-27 11:16:40 +1000 |
---|---|---|
committer | Nico Huber <nico.h@gmx.de> | 2021-10-10 10:24:14 +0000 |
commit | 5a73eb7d1b727b9cc11cc94ab807ffbd25cdb268 (patch) | |
tree | 3523770fd6024903bb3c1c4125a5244e659788e5 /raiden_debug_spi.c | |
parent | 7b9c74f49607dda18243138e87d71b773cec7a7b (diff) | |
download | flashrom-5a73eb7d1b727b9cc11cc94ab807ffbd25cdb268.tar.gz flashrom-5a73eb7d1b727b9cc11cc94ab807ffbd25cdb268.tar.bz2 flashrom-5a73eb7d1b727b9cc11cc94ab807ffbd25cdb268.zip |
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>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/57972
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.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/raiden_debug_spi.c b/raiden_debug_spi.c index 92779fc5..9cba2a80 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; } |