Small Page NAND uses byte 6 for BBI and Large Page NAND uses first 2 bytes.

Signed-off-by: Álvaro Fernández Rojas <nolt...@gmail.com>
---
 drivers/mtd/nand/raw/brcmnand/brcmnand.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand.c 
b/drivers/mtd/nand/raw/brcmnand/brcmnand.c
index 1bba309c7684..59c3241f4ea5 100644
--- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c
+++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c
@@ -1109,10 +1109,18 @@ static int brcmnand_hamming_ooblayout_free(struct 
mtd_info *mtd, int section,
        if (section < sectors)
                next += 6;
 
-       if (section)
+       if (section) {
                oobregion->offset = ((section - 1) * sas) + 9;
-       else
-               oobregion->offset = 1; /* BBI */
+       } else {
+               if (cfg->page_size == 512) {
+                       /* small page uses byte 6 for BBI */
+                       oobregion->offset = 0;
+                       next--;
+               } else {
+                       /* large page uses first 2 bytes for BBI */
+                       oobregion->offset = 2;
+               }
+       }
 
        oobregion->length = next - oobregion->offset;
 
-- 
2.26.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to