1
0
mirror of https://review.coreboot.org/flashrom.git synced 2025-04-27 15:12:36 +02:00

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>
This commit is contained in:
Anastasia Klimchuk 2021-05-25 13:53:25 +10:00 committed by Edward O'Callaghan
parent 89a16e4df6
commit 45e0a071f1
4 changed files with 8 additions and 12 deletions

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;
}