diff options
author | Anastasia Klimchuk <aklm@chromium.org> | 2021-05-25 13:53:25 +1000 |
---|---|---|
committer | Edward O'Callaghan <quasisec@chromium.org> | 2021-06-03 05:12:29 +0000 |
commit | 45e0a071f13a684166335394c4ea40c9d055e198 (patch) | |
tree | f0f97538f75bbbdee80c2e680ba5e82a6c5aed5b | |
parent | 89a16e4df69a6c123aeaf4b64b71a93f5a274648 (diff) | |
download | flashrom-45e0a071f13a684166335394c4ea40c9d055e198.tar.gz flashrom-45e0a071f13a684166335394c4ea40c9d055e198.tar.bz2 flashrom-45e0a071f13a684166335394c4ea40c9d055e198.zip |
spi_master: Make use of new register_spi_master() API
Some more spi masters are now ready to get the advantage of new API
and pass pointers to dynamically allocated data to
register_spi_master(). This way we can avoid some mutable globals.
BUG=b:185191942
TEST=./flashrom --programmer raiden_debug_spi -r $(mktemp)
./flashrom --programmer raiden_debug_spi -v /tmp/tmp.Fch5QLVb4R
Change-Id: If72f54c28a95b402b3565fd14ea481f734e1c970
Signed-off-by: Anastasia Klimchuk <aklm@chromium.org>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/54889
Reviewed-by: Edward O'Callaghan <quasisec@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-rw-r--r-- | ene_lpc.c | 5 | ||||
-rw-r--r-- | mec1308.c | 5 | ||||
-rw-r--r-- | raiden_debug_spi.c | 4 | ||||
-rw-r--r-- | realtek_mst_i2c_spi.c | 6 |
4 files changed, 8 insertions, 12 deletions
@@ -504,7 +504,7 @@ exit: return rv; } -static struct spi_master spi_master_ene = { +static const struct spi_master spi_master_ene = { .max_data_read = 256, .max_data_write = 256, .command = ene_spi_send_command, @@ -568,11 +568,10 @@ int ene_lpc_init() ene_enter_flash_mode(ctx_data); internal_buses_supported |= BUS_LPC; - spi_master_ene.data = ctx_data; if (register_shutdown(ene_leave_flash_mode, ctx_data)) goto init_err_cleanup_exit; - register_spi_master(&spi_master_ene, NULL); + register_spi_master(&spi_master_ene, ctx_data); msg_pdbg("%s: successfully initialized ene\n", __func__); return 0; @@ -397,7 +397,7 @@ mec1308_spi_send_command_exit: return rc; } -static struct spi_master spi_master_mec1308 = { +static const struct spi_master spi_master_mec1308 = { .max_data_read = 256, /* FIXME: should be MAX_DATA_READ_UNLIMITED? */ .max_data_write = 256, /* FIXME: should be MAX_DATA_WRITE_UNLIMITED? */ .command = mec1308_spi_send_command, @@ -505,11 +505,10 @@ int mec1308_init(void) goto init_err_cleanup_exit; internal_buses_supported |= BUS_LPC; /* for LPC <--> SPI bridging */ - spi_master_mec1308.data = ctx_data; if (register_shutdown(mec1308_shutdown, ctx_data)) goto init_err_cleanup_exit; - register_spi_master(&spi_master_mec1308, NULL); + register_spi_master(&spi_master_mec1308, ctx_data); msg_pdbg("%s(): successfully initialized mec1308\n", __func__); return 0; diff --git a/raiden_debug_spi.c b/raiden_debug_spi.c index c2758515..f67bbe5e 100644 --- a/raiden_debug_spi.c +++ b/raiden_debug_spi.c @@ -1597,7 +1597,7 @@ loop_end: data->in_ep = in_endpoint; data->out_ep = out_endpoint; - spi_config->data = data; + spi_config->data = data; /* data is needed to configure protocol below */ /* * The SPI master needs to be configured based on the device connected. * Using the device protocol interrogation, we will set the limits on @@ -1614,7 +1614,7 @@ loop_end: return SPI_GENERIC_ERROR; } - register_spi_master(spi_config, NULL); + register_spi_master(spi_config, data); register_shutdown(raiden_debug_spi_shutdown, spi_config); return 0; diff --git a/realtek_mst_i2c_spi.c b/realtek_mst_i2c_spi.c index f0a6dce9..95c017fa 100644 --- a/realtek_mst_i2c_spi.c +++ b/realtek_mst_i2c_spi.c @@ -410,7 +410,7 @@ static int realtek_mst_i2c_spi_write_aai(struct flashctx *flash, const uint8_t * return SPI_GENERIC_ERROR; } -static struct spi_master spi_master_i2c_realtek_mst = { +static const struct spi_master spi_master_i2c_realtek_mst = { .max_data_read = 16, .max_data_write = 8, .command = realtek_mst_i2c_spi_send_command, @@ -513,9 +513,7 @@ int realtek_mst_i2c_spi_init(void) data->fd = fd; data->reset = reset; ret |= register_shutdown(realtek_mst_i2c_spi_shutdown, data); - - spi_master_i2c_realtek_mst.data = data; - ret |= register_spi_master(&spi_master_i2c_realtek_mst, NULL); + ret |= register_spi_master(&spi_master_i2c_realtek_mst, data); return ret; } |