linux-mtd.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] mtd: spi-nor: Provide default address width and latency for map selection
@ 2018-11-29 18:15 Sverdlin, Alexander (Nokia - DE/Ulm)
  2018-11-30 10:40 ` Boris Brezillon
  0 siblings, 1 reply; 8+ messages in thread
From: Sverdlin, Alexander (Nokia - DE/Ulm) @ 2018-11-29 18:15 UTC (permalink / raw)
  To: linux-mtd@lists.infradead.org
  Cc: Sverdlin, Alexander (Nokia - DE/Ulm), Marek Vasut,
	David Woodhouse, Brian Norris, Boris Brezillon,
	Richard Weinberger, Tudor Ambarus

JESD216 allows "variable address length" and "variable latency" in
Configuration Detection Command Descriptors, in other words "as-is".
And they are still unset during Sector Map Parameter Table parsing,
which led to "map_id" determined erroneously as 0 for, e.g. S25FS128S.

Fixes: b038e8e3b ("mtd: spi-nor: parse SFDP Sector Map Parameter Table")
Signed-off-by: Alexander Sverdlin <alexander.sverdlin@nokia.com>
---
 drivers/mtd/spi-nor/spi-nor.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
index 828d03e..5557c89 100644
--- a/drivers/mtd/spi-nor/spi-nor.c
+++ b/drivers/mtd/spi-nor/spi-nor.c
@@ -2893,6 +2893,16 @@ static const u32 *spi_nor_get_map_in_use(struct spi_nor *nor, const u32 *smpt)
 		nor->read_opcode = SMPT_CMD_OPCODE(smpt[i]);
 		addr = smpt[i + 1];
 
+		/*
+		 * JESD216 allows to omit particular address length or latency
+		 * specification in the header and at this point they are still
+		 * unset, so we need some heuristics. One example is S25FS128S.
+		 */
+		if (!nor->addr_width)
+			nor->addr_width = 3;
+		if (!nor->read_dummy)
+			nor->read_dummy = 8;
+
 		err = spi_nor_read_raw(nor, addr, 1, &data_byte);
 		if (err)
 			goto out;
-- 
2.4.6

^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2018-12-03  9:35 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-11-29 18:15 [PATCH] mtd: spi-nor: Provide default address width and latency for map selection Sverdlin, Alexander (Nokia - DE/Ulm)
2018-11-30 10:40 ` Boris Brezillon
2018-12-03  8:03   ` Sverdlin, Alexander (Nokia - DE/Ulm)
2018-12-03  8:23     ` Boris Brezillon
2018-12-03  8:34       ` Sverdlin, Alexander (Nokia - DE/Ulm)
2018-12-03  8:37       ` Sverdlin, Alexander (Nokia - DE/Ulm)
2018-12-03  9:08         ` Boris Brezillon
2018-12-03  9:34           ` Boris Brezillon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).