From 9a1bb36137921c751173d6726a06019c84b171f5 Mon Sep 17 00:00:00 2001 From: Aaron Durbin Date: Thu, 19 Apr 2018 16:58:13 -0600 Subject: soc{broadcom,imgtec,mediatek,qualcomm}: stop using spi_xfer_two_vectors On a second look broadcom/cygnus and imgtec/pistachio appear to support full duplex. Therefore, remove the use of spi_xfer_two_vectors(). For mediatek/mt8173 and qualcomm/ipq40xx, the driver is written in such a way that it does not support full duplex. Remove the use of spi_xfer_two_vectors() and explicitly error out when a full duplex transaction is requested. Change-Id: I8689bc9bb2b27563d25e9f165487d38881c0b059 Signed-off-by: Aaron Durbin Reviewed-on: https://review.coreboot.org/25742 Reviewed-by: Furquan Shaikh Reviewed-by: Paul Menzel Tested-by: build bot (Jenkins) --- src/soc/mediatek/mt8173/spi.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/soc/mediatek/mt8173') diff --git a/src/soc/mediatek/mt8173/spi.c b/src/soc/mediatek/mt8173/spi.c index ae6dc3b911..f70f4d991e 100644 --- a/src/soc/mediatek/mt8173/spi.c +++ b/src/soc/mediatek/mt8173/spi.c @@ -253,6 +253,10 @@ static int spi_ctrlr_xfer(const struct spi_slave *slave, const void *dout, size_t min_size = 0; int ret; + /* Driver implementation does not support full duplex. */ + if (bytes_in && bytes_out) + return -1; + while (bytes_out || bytes_in) { if (bytes_in && bytes_out) min_size = MIN(MIN(bytes_out, bytes_in), MTK_FIFO_DEPTH); @@ -307,7 +311,6 @@ static const struct spi_ctrlr spi_ctrlr = { .claim_bus = spi_ctrlr_claim_bus, .release_bus = spi_ctrlr_release_bus, .xfer = spi_ctrlr_xfer, - .xfer_vector = spi_xfer_two_vectors, .max_xfer_size = 65535, }; -- cgit v1.2.3