summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNico Huber <nico.h@gmx.de>2017-04-22 00:13:15 +0200
committerNico Huber <nico.h@gmx.de>2019-06-27 10:24:47 +0000
commit959aafa53eeae4f22766b9d098e5ca952af8c070 (patch)
tree12b2cf5512e0331370f75645a73372750f273d46
parentafc3ad64300bbcc14266e645beec897ef06df13d (diff)
downloadflashrom-959aafa53eeae4f22766b9d098e5ca952af8c070.tar.gz
flashrom-959aafa53eeae4f22766b9d098e5ca952af8c070.tar.bz2
flashrom-959aafa53eeae4f22766b9d098e5ca952af8c070.zip
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 <nico.h@gmx.de> Reviewed-on: https://review.coreboot.org/c/flashrom/+/33650 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Angel Pons <th3fanbus@gmail.com> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
-rw-r--r--spi25.c25
1 files 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)