From 851dde8255efda7ecf9b37a3b7b22f4edab8881f Mon Sep 17 00:00:00 2001 From: Aaron Durbin Date: Thu, 19 Apr 2018 21:15:25 -0600 Subject: drivers/spi: reduce confusion in the API Julius brought up confusion about the current spi api in [1]. In order alleviate the confusion stemming from supporting x86 spi flash controllers: - Remove spi_xfer_two_vectors() which was fusing transactions to accomodate the limitations of the spi controllers themselves. - Add spi_flash_vector_helper() for the x86 spi flash controllers to utilize in validating driver/controller current assumptions. - Remove the xfer() callback in the x86 spi flash drivers which will trigger an error as these controllers can't support the api. [1] https://mail.coreboot.org/pipermail/coreboot/2018-April/086561.html Change-Id: Id88adc6ad5234c29a739d43521c5f344bb7d3217 Signed-off-by: Aaron Durbin Reviewed-on: https://review.coreboot.org/25745 Tested-by: build bot (Jenkins) Reviewed-by: Julius Werner --- src/southbridge/amd/agesa/hudson/spi.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/southbridge/amd/agesa') diff --git a/src/southbridge/amd/agesa/hudson/spi.c b/src/southbridge/amd/agesa/hudson/spi.c index 379594e0a3..22951ab9f0 100644 --- a/src/southbridge/amd/agesa/hudson/spi.c +++ b/src/southbridge/amd/agesa/hudson/spi.c @@ -160,9 +160,14 @@ int chipset_volatile_group_end(const struct spi_flash *flash) return 0; } +static int xfer_vectors(const struct spi_slave *slave, + struct spi_op vectors[], size_t count) +{ + return spi_flash_vector_helper(slave, vectors, count, spi_ctrlr_xfer); +} + static const struct spi_ctrlr spi_ctrlr = { - .xfer = spi_ctrlr_xfer, - .xfer_vector = spi_xfer_two_vectors, + .xfer_vector = xfer_vectors, .max_xfer_size = AMD_SB_SPI_TX_LEN, .flags = SPI_CNTRLR_DEDUCT_CMD_LEN, }; -- cgit v1.2.3