Edward O'Callaghan has submitted this change. ( https://review.coreboot.org/c/flashrom/+/40470 )
Change subject: lspcon_i2c_spi.c: Clean up some unnecessary indirection ......................................................................
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 quasisec@google.com Change-Id: I66ba4ffeb696309b8ad5b5ba58650630e8feefa9 Reviewed-on: https://review.coreboot.org/c/flashrom/+/40470 Tested-by: build bot (Jenkins) no-reply@coreboot.org Reviewed-by: Angel Pons th3fanbus@gmail.com --- M lspcon_i2c_spi.c 1 file changed, 7 insertions(+), 11 deletions(-)
Approvals: build bot (Jenkins): Verified Angel Pons: Looks good to me, approved
diff --git a/lspcon_i2c_spi.c b/lspcon_i2c_spi.c index 4c85426..1ee5f37 100644 --- a/lspcon_i2c_spi.c +++ b/lspcon_i2c_spi.c @@ -406,7 +406,7 @@ 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 @@ 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 @@ 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 @@ }
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; }