diff options
author | Nico Huber <nico.h@gmx.de> | 2017-04-22 00:13:15 +0200 |
---|---|---|
committer | Nico Huber <nico.h@gmx.de> | 2019-06-27 10:24:47 +0000 |
commit | 959aafa53eeae4f22766b9d098e5ca952af8c070 (patch) | |
tree | 12b2cf5512e0331370f75645a73372750f273d46 /spi25.c | |
parent | afc3ad64300bbcc14266e645beec897ef06df13d (diff) | |
download | flashrom-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>
Diffstat (limited to 'spi25.c')
-rw-r--r-- | spi25.c | 25 |
1 files changed, 5 insertions, 20 deletions
@@ -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) |