mirror of
https://review.coreboot.org/flashrom.git
synced 2025-04-27 15:12:36 +02:00
programmer: Make use of new register_spi_master() API
Pass pointers to dynamically allocated data to register_spi_master(). This way we can avoid some mutable globals. Change-Id: Id7821f1db3284b7b5b3d0abfd878b979c53870a1 Signed-off-by: Nico Huber <nico.h@gmx.de> Reviewed-on: https://review.coreboot.org/c/flashrom/+/54067 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Angel Pons <th3fanbus@gmail.com>
This commit is contained in:
parent
7e4968525d
commit
90739d147f
@ -315,7 +315,7 @@ static int digilent_spi_send_command(const struct flashctx *flash, unsigned int
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct spi_master spi_master_digilent_spi = {
|
||||
static const struct spi_master spi_master_digilent_spi = {
|
||||
.features = SPI_MASTER_4BA,
|
||||
.max_data_read = 252,
|
||||
.max_data_write = 252,
|
||||
@ -454,10 +454,9 @@ int digilent_spi_init(void)
|
||||
}
|
||||
digilent_data->reset_board = reset_board;
|
||||
digilent_data->handle = handle;
|
||||
spi_master_digilent_spi.data = digilent_data;
|
||||
|
||||
register_shutdown(digilent_spi_shutdown, digilent_data);
|
||||
register_spi_master(&spi_master_digilent_spi, NULL);
|
||||
register_spi_master(&spi_master_digilent_spi, digilent_data);
|
||||
|
||||
return 0;
|
||||
|
||||
|
@ -611,7 +611,7 @@ static int dummy_spi_send_command(const struct flashctx *flash, unsigned int wri
|
||||
|
||||
|
||||
|
||||
static struct spi_master spi_master_dummyflasher = {
|
||||
static const struct spi_master spi_master_dummyflasher = {
|
||||
.features = SPI_MASTER_4BA,
|
||||
.max_data_read = MAX_DATA_READ_UNLIMITED,
|
||||
.max_data_write = MAX_DATA_UNSPECIFIED,
|
||||
@ -674,7 +674,6 @@ int dummy_init(void)
|
||||
}
|
||||
data->emu_chip = EMULATE_NONE;
|
||||
data->delay_us = 0;
|
||||
spi_master_dummyflasher.data = data;
|
||||
par_master_dummy.data = data;
|
||||
|
||||
msg_pspew("%s\n", __func__);
|
||||
@ -1030,7 +1029,7 @@ dummy_init_out:
|
||||
register_par_master(&par_master_dummy,
|
||||
dummy_buses_supported & (BUS_PARALLEL | BUS_LPC | BUS_FWH));
|
||||
if (dummy_buses_supported & BUS_SPI)
|
||||
register_spi_master(&spi_master_dummyflasher, NULL);
|
||||
register_spi_master(&spi_master_dummyflasher, data);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -276,7 +276,7 @@ static int ft2232_spi_send_command(const struct flashctx *flash,
|
||||
return failed ? -1 : 0;
|
||||
}
|
||||
|
||||
static struct spi_master spi_master_ft2232 = {
|
||||
static const struct spi_master spi_master_ft2232 = {
|
||||
.features = SPI_MASTER_4BA,
|
||||
.max_data_read = 64 * 1024,
|
||||
.max_data_write = 256,
|
||||
@ -620,13 +620,11 @@ int ft2232_spi_init(void)
|
||||
spi_data->pindir = pindir;
|
||||
spi_data->ftdic_context = ftdic;
|
||||
|
||||
spi_master_ft2232.data = spi_data;
|
||||
|
||||
if (register_shutdown(ft2232_shutdown, spi_data)) {
|
||||
free(spi_data);
|
||||
goto ftdi_err;
|
||||
}
|
||||
register_spi_master(&spi_master_ft2232, NULL);
|
||||
register_spi_master(&spi_master_ft2232, spi_data);
|
||||
|
||||
return 0;
|
||||
|
||||
|
@ -281,7 +281,7 @@ static int it85xx_spi_send_command(const struct flashctx *flash,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct spi_master spi_master_it85xx = {
|
||||
static const struct spi_master spi_master_it85xx = {
|
||||
.max_data_read = 64,
|
||||
.max_data_write = 64,
|
||||
.command = it85xx_spi_send_command,
|
||||
@ -358,15 +358,13 @@ int it85xx_spi_init(struct superio s)
|
||||
return 1;
|
||||
}
|
||||
|
||||
spi_master_it85xx.data = data;
|
||||
|
||||
/* FIXME: Really leave FWH enabled? We can't use this region
|
||||
* anymore since accessing it would mess up IT85 communication.
|
||||
* If we decide to disable FWH for this region, we should print
|
||||
* a debug message about it.
|
||||
*/
|
||||
/* Set this as SPI controller. */
|
||||
register_spi_master(&spi_master_it85xx, NULL);
|
||||
register_spi_master(&spi_master_it85xx, data);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -290,7 +290,7 @@ static int it8716f_spi_chip_write_256(struct flashctx *flash, const uint8_t *buf
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct spi_master spi_master_it87xx = {
|
||||
static const struct spi_master spi_master_it87xx = {
|
||||
.max_data_read = 3,
|
||||
.max_data_write = MAX_DATA_UNSPECIFIED,
|
||||
.command = it8716f_spi_send_command,
|
||||
@ -419,14 +419,13 @@ static uint16_t it87spi_probe(uint16_t port)
|
||||
|
||||
data->flashport = flashport;
|
||||
data->fast_spi = 1;
|
||||
spi_master_it87xx.data = data;
|
||||
|
||||
register_shutdown(it8716f_shutdown, data);
|
||||
|
||||
if (internal_buses_supported & BUS_SPI)
|
||||
msg_pdbg("Overriding chipset SPI with IT87 SPI.\n");
|
||||
/* FIXME: Add the SPI bus or replace the other buses with it? */
|
||||
register_spi_master(&spi_master_it87xx, NULL);
|
||||
register_spi_master(&spi_master_it87xx, data);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -155,7 +155,7 @@ static int jlink_spi_send_command(const struct flashctx *flash, unsigned int wri
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct spi_master spi_master_jlink_spi = {
|
||||
static const struct spi_master spi_master_jlink_spi = {
|
||||
/* Maximum data read size in one go (excluding opcode+address). */
|
||||
.max_data_read = JTAG_MAX_TRANSFER_SIZE - 5,
|
||||
/* Maximum data write size in one go (excluding opcode+address). */
|
||||
@ -464,7 +464,6 @@ int jlink_spi_init(void)
|
||||
jlink_data->ctx = jaylink_ctx;
|
||||
jlink_data->devh = jaylink_devh;
|
||||
jlink_data->reset_cs = reset_cs;
|
||||
spi_master_jlink_spi.data = jlink_data;
|
||||
|
||||
/* Ensure that the CS signal is not active initially. */
|
||||
if (!deassert_cs(jlink_data))
|
||||
@ -472,7 +471,7 @@ int jlink_spi_init(void)
|
||||
|
||||
if (register_shutdown(jlink_spi_shutdown, jlink_data))
|
||||
goto init_err;
|
||||
register_spi_master(&spi_master_jlink_spi, NULL);
|
||||
register_spi_master(&spi_master_jlink_spi, jlink_data);
|
||||
|
||||
return 0;
|
||||
|
||||
|
@ -113,7 +113,7 @@ static int linux_spi_send_command(const struct flashctx *flash, unsigned int wri
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct spi_master spi_master_linux = {
|
||||
static const struct spi_master spi_master_linux = {
|
||||
.features = SPI_MASTER_4BA,
|
||||
.max_data_read = MAX_DATA_UNSPECIFIED, /* TODO? */
|
||||
.max_data_write = MAX_DATA_UNSPECIFIED, /* TODO? */
|
||||
@ -238,13 +238,12 @@ int linux_spi_init(void)
|
||||
}
|
||||
spi_data->fd = fd;
|
||||
spi_data->max_kernel_buf_size = max_kernel_buf_size;
|
||||
spi_master_linux.data = spi_data;
|
||||
|
||||
if (register_shutdown(linux_spi_shutdown, spi_data)) {
|
||||
free(spi_data);
|
||||
goto init_err;
|
||||
}
|
||||
register_spi_master(&spi_master_linux, NULL);
|
||||
register_spi_master(&spi_master_linux, spi_data);
|
||||
return 0;
|
||||
|
||||
init_err:
|
||||
|
@ -408,7 +408,7 @@ static int lspcon_i2c_spi_write_aai(struct flashctx *flash, const uint8_t *buf,
|
||||
return SPI_GENERIC_ERROR;
|
||||
}
|
||||
|
||||
static struct spi_master spi_master_i2c_lspcon = {
|
||||
static const struct spi_master spi_master_i2c_lspcon = {
|
||||
.max_data_read = 16,
|
||||
.max_data_write = 12,
|
||||
.command = lspcon_i2c_spi_send_command,
|
||||
@ -454,10 +454,9 @@ int lspcon_i2c_spi_init(void)
|
||||
}
|
||||
|
||||
data->fd = fd;
|
||||
spi_master_i2c_lspcon.data = data;
|
||||
|
||||
ret |= register_shutdown(lspcon_i2c_spi_shutdown, data);
|
||||
ret |= register_spi_master(&spi_master_i2c_lspcon, NULL);
|
||||
ret |= register_spi_master(&spi_master_i2c_lspcon, data);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -340,7 +340,7 @@ static int parse_voltage(char *voltage)
|
||||
return millivolt;
|
||||
}
|
||||
|
||||
static struct spi_master spi_master_pickit2 = {
|
||||
static const struct spi_master spi_master_pickit2 = {
|
||||
.max_data_read = 40,
|
||||
.max_data_write = 40,
|
||||
.command = pickit2_spi_send_command,
|
||||
@ -477,7 +477,6 @@ int pickit2_spi_init(void)
|
||||
return 1;
|
||||
}
|
||||
pickit2_data->pickit2_handle = pickit2_handle;
|
||||
spi_master_pickit2.data = pickit2_data;
|
||||
|
||||
if (pickit2_get_firmware_version(pickit2_handle))
|
||||
goto init_err_cleanup_exit;
|
||||
@ -501,7 +500,7 @@ int pickit2_spi_init(void)
|
||||
|
||||
if (register_shutdown(pickit2_shutdown, pickit2_data))
|
||||
goto init_err_cleanup_exit;
|
||||
register_spi_master(&spi_master_pickit2, NULL);
|
||||
register_spi_master(&spi_master_pickit2, pickit2_data);
|
||||
|
||||
return 0;
|
||||
|
||||
|
@ -168,7 +168,7 @@ static int usbblaster_shutdown(void *data)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct spi_master spi_master_usbblaster = {
|
||||
static const struct spi_master spi_master_usbblaster = {
|
||||
.max_data_read = 256,
|
||||
.max_data_write = 256,
|
||||
.command = usbblaster_spi_send_command,
|
||||
@ -226,13 +226,12 @@ int usbblaster_spi_init(void)
|
||||
return -1;
|
||||
}
|
||||
usbblaster_data->ftdic = ftdic;
|
||||
spi_master_usbblaster.data = usbblaster_data;
|
||||
|
||||
if (register_shutdown(usbblaster_shutdown, usbblaster_data)) {
|
||||
free(usbblaster_data);
|
||||
return -1;
|
||||
}
|
||||
register_spi_master(&spi_master_usbblaster, NULL);
|
||||
register_spi_master(&spi_master_usbblaster, usbblaster_data);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -177,7 +177,7 @@ static int wbsio_spi_read(struct flashctx *flash, uint8_t *buf,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct spi_master spi_master_wbsio = {
|
||||
static const struct spi_master spi_master_wbsio = {
|
||||
.max_data_read = MAX_DATA_UNSPECIFIED,
|
||||
.max_data_write = MAX_DATA_UNSPECIFIED,
|
||||
.command = wbsio_spi_send_command,
|
||||
@ -215,8 +215,7 @@ int wbsio_check_for_spi(void)
|
||||
data->spibase = wbsio_spibase;
|
||||
|
||||
register_shutdown(wbsio_spi_shutdown, data);
|
||||
spi_master_wbsio.data = data;
|
||||
register_spi_master(&spi_master_wbsio, NULL);
|
||||
register_spi_master(&spi_master_wbsio, data);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user