From 959aafa53eeae4f22766b9d098e5ca952af8c070 Mon Sep 17 00:00:00 2001 From: Nico Huber Date: Sat, 22 Apr 2017 00:13:15 +0200 Subject: spi25: Fix layering violation in probe_spi_rdid4() Move the message to a lower level where we can do a more generic check and don't need internal knowledge of the SPI-master driver. Change-Id: Idd21d20465cb214f3ff5bf3267b9014f8beee3f3 Signed-off-by: Nico Huber Reviewed-on: https://review.coreboot.org/c/flashrom/+/33650 Tested-by: build bot (Jenkins) Reviewed-by: Angel Pons Reviewed-by: Paul Menzel --- spi25.c | 25 +++++-------------------- 1 file changed, 5 insertions(+), 20 deletions(-) diff --git a/spi25.c b/spi25.c index ecb189371..36f265a7b 100644 --- a/spi25.c +++ b/spi25.c @@ -100,9 +100,11 @@ static int probe_spi_rdid_generic(struct flashctx *flash, int bytes) uint32_t id1; uint32_t id2; - if (spi_rdid(flash, readarr, bytes)) { + const int ret = spi_rdid(flash, readarr, bytes); + if (ret == SPI_INVALID_LENGTH) + msg_cinfo("%d byte RDID not supported on this SPI controller\n", bytes); + if (ret) return 0; - } if (!oddparity(readarr[0])) msg_cdbg("RDID byte 0 parity violation. "); @@ -147,24 +149,7 @@ int probe_spi_rdid(struct flashctx *flash) int probe_spi_rdid4(struct flashctx *flash) { - /* Some SPI controllers do not support commands with writecnt=1 and - * readcnt=4. - */ - switch (flash->mst->spi.type) { -#if CONFIG_INTERNAL == 1 -#if defined(__i386__) || defined(__x86_64__) - case SPI_CONTROLLER_IT87XX: - case SPI_CONTROLLER_WBSIO: - msg_cinfo("4 byte RDID not supported on this SPI controller\n"); - return 0; - break; -#endif -#endif - default: - return probe_spi_rdid_generic(flash, 4); - } - - return 0; + return probe_spi_rdid_generic(flash, 4); } int probe_spi_rems(struct flashctx *flash) -- cgit v1.2.3