From 6d5419d96ad7d6f2b6de112e8f8ba1f74ceb33d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Tue, 7 Feb 2017 12:32:35 +0100 Subject: kernel: update spi-nor in 4.9 to version from Linus's tree (4.10) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This adds support for more devices. Signed-off-by: Rafał Miłecki --- ...0002-mtd-spi-nor-fix-spansion-quad-enable.patch | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 target/linux/generic/patches-4.9/061-v4.10-0002-mtd-spi-nor-fix-spansion-quad-enable.patch (limited to 'target/linux/generic/patches-4.9/061-v4.10-0002-mtd-spi-nor-fix-spansion-quad-enable.patch') diff --git a/target/linux/generic/patches-4.9/061-v4.10-0002-mtd-spi-nor-fix-spansion-quad-enable.patch b/target/linux/generic/patches-4.9/061-v4.10-0002-mtd-spi-nor-fix-spansion-quad-enable.patch new file mode 100644 index 0000000000..cd0aa4660a --- /dev/null +++ b/target/linux/generic/patches-4.9/061-v4.10-0002-mtd-spi-nor-fix-spansion-quad-enable.patch @@ -0,0 +1,42 @@ +From 807c16253319ee6ccf8873ae64f070f7eb532cd5 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jo=C3=ABl=20Esponde?= +Date: Wed, 23 Nov 2016 12:47:40 +0100 +Subject: [PATCH] mtd: spi-nor: fix spansion quad enable +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +With the S25FL127S nor flash part, each writing to the configuration +register takes hundreds of ms. During that time, no more accesses to +the flash should be done (even reads). + +This commit adds a wait loop after the register writing until the flash +finishes its work. + +This issue could make rootfs mounting fail when the latter was done too +much closely to this quad enable bit setting step. And in this case, a +driver as UBIFS may try to recover the filesystem and may broke it +completely. + +Signed-off-by: Joël Esponde +Signed-off-by: Cyrille Pitchen +--- + drivers/mtd/spi-nor/spi-nor.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- a/drivers/mtd/spi-nor/spi-nor.c ++++ b/drivers/mtd/spi-nor/spi-nor.c +@@ -1256,6 +1256,13 @@ static int spansion_quad_enable(struct s + return -EINVAL; + } + ++ ret = spi_nor_wait_till_ready(nor); ++ if (ret) { ++ dev_err(nor->dev, ++ "timeout while writing configuration register\n"); ++ return ret; ++ } ++ + /* read back and check it */ + ret = read_cr(nor); + if (!(ret > 0 && (ret & CR_QUAD_EN_SPAN))) { -- cgit v1.2.3