aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnastasia Klimchuk <aklm@chromium.org>2021-05-25 13:53:25 +1000
committerEdward O'Callaghan <quasisec@chromium.org>2021-06-03 05:12:29 +0000
commit45e0a071f13a684166335394c4ea40c9d055e198 (patch)
treef0f97538f75bbbdee80c2e680ba5e82a6c5aed5b
parent89a16e4df69a6c123aeaf4b64b71a93f5a274648 (diff)
downloadflashrom-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.c5
-rw-r--r--mec1308.c5
-rw-r--r--raiden_debug_spi.c4
-rw-r--r--realtek_mst_i2c_spi.c6
4 files changed, 8 insertions, 12 deletions
diff --git a/ene_lpc.c b/ene_lpc.c
index 46f17832..04c17e38 100644
--- a/ene_lpc.c
+++ b/ene_lpc.c
@@ -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;
diff --git a/mec1308.c b/mec1308.c
index 70d2a796..3923d5bd 100644
--- a/mec1308.c
+++ b/mec1308.c
@@ -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;
}