+++ /dev/null
-From cf0d2fbaae9e962d91a321de75e0d4f9f9ccbdfe Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
-Date: Thu, 21 Jan 2021 18:17:37 +0100
-Subject: [PATCH] nand: brcmnand: fix OOB R/W with Hamming ECC
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Hamming ECC doesn't cover the OOB data, so reading or writing OOB shall
-always be done without ECC enabled.
-This is a problem when adding JFFS2 cleanmarkers to erased blocks. When JFFS2
-clenmarkers are added to the OOB with ECC enabled, OOB bytes will be changed
-from ff ff ff to 00 00 00, reporting incorrect ECC errors.
-
-Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
----
- drivers/mtd/nand/raw/brcmnand/brcmnand.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
---- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c
-+++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c
-@@ -2432,6 +2432,12 @@ static int brcmnand_attach_chip(struct n
- chip->ecc.read_oob = brcmnand_read_oob_raw;
- }
-
-+ /* If OOB is written with ECC enabled it will cause ECC errors */
-+ if (is_hamming_ecc(host->ctrl, &host->hwcfg)) {
-+ chip->ecc.write_oob = brcmnand_write_oob_raw;
-+ chip->ecc.read_oob = brcmnand_read_oob_raw;
-+ }
-+
- return ret;
- }
-