From a25c13cdb601f9d43b0f8edad96f9489efcb4b37 Mon Sep 17 00:00:00 2001 From: Edward O'Callaghan Date: Fri, 17 Apr 2020 14:10:55 +1000 Subject: lspcon_i2c_spi.c: Clean up some unnecessary indirection Clean up some confusion of implicit copies by indirection. This allows the caller of register_spi_master() to have it's internal state in the expected way. Also add an error when the mpu reset fails on init. BUG=b:148746232,b:153027771,b:140394053 BRANCH=none TEST=builds Signed-off-by: Edward O'Callaghan Change-Id: I66ba4ffeb696309b8ad5b5ba58650630e8feefa9 Reviewed-on: https://review.coreboot.org/c/flashrom/+/40470 Tested-by: build bot (Jenkins) Reviewed-by: Angel Pons --- lspcon_i2c_spi.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/lspcon_i2c_spi.c b/lspcon_i2c_spi.c index 4c8542644..1ee5f373f 100644 --- a/lspcon_i2c_spi.c +++ b/lspcon_i2c_spi.c @@ -406,7 +406,7 @@ static int lspcon_i2c_spi_write_aai(struct flashctx *flash, const uint8_t *buf, return SPI_GENERIC_ERROR; } -static const struct spi_master spi_master_i2c_lspcon = { +static struct spi_master spi_master_i2c_lspcon = { .max_data_read = 16, .max_data_write = 12, .command = lspcon_i2c_spi_send_command, @@ -468,14 +468,6 @@ get_bus_done: return ret; } -static int register_lspcon_i2c_spi_master(void *ptr) -{ - struct spi_master mst = spi_master_i2c_lspcon; - mst.data = ptr; - - return register_spi_master(&mst); -} - int lspcon_i2c_spi_init(void) { int lspcon_i2c_spi_bus = get_bus(); @@ -488,8 +480,10 @@ int lspcon_i2c_spi_init(void) return fd; ret |= lspcon_i2c_spi_reset_mpu_stop(fd); - if (ret) + if (ret) { + msg_perr("%s: call to reset_mpu_stop failed.\n", __func__); return ret; + } struct lspcon_i2c_spi_data *data = calloc(1, sizeof(struct lspcon_i2c_spi_data)); if (!data) { @@ -498,8 +492,10 @@ 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_lspcon_i2c_spi_master(data); + ret |= register_spi_master(&spi_master_i2c_lspcon); return ret; } -- cgit v1.2.3