]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
mtd: nand: omap: Fix NAND enumeration on 3430 LDP
authorRoger Quadros <rogerq@ti.com>
Wed, 19 Nov 2014 12:22:23 +0000 (14:22 +0200)
committerLuis Henriques <luis.henriques@canonical.com>
Fri, 16 Jan 2015 14:34:41 +0000 (14:34 +0000)
commit 775a9134f4398ca98a10af8cc3cf9b664017267f upstream.

3430LDP has NAND flash with 32 bytes OOB size which is sufficient to hold
BCH8 codes but the small page check introduced in
commit b491da7233d5 ("mtd: nand: omap: clean-up ecc layout for BCH ecc schemes")
considers anything below 64 bytes unsuitable for BCH4/8/16. There is another
bug in that code where it doesn't skip the check for OMAP_ECC_HAM1_CODE_SW.

Get rid of that small page check code as it is insufficient and redundant
because we are checking for OOB available bytes vs ecc layout before calling
nand_scan_tail().

Fixes: b491da7233d5 ("mtd: nand: omap: clean-up ecc layout for BCH ecc schemes")
Reported-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
[ luis: backported to 3.16: adjusted context ]
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
drivers/mtd/nand/omap2.c

index e2b9b345177adb2900603341b1ee8abe28d4d198..575a015c839430e0f9a25c41eb87aabb70975938 100644 (file)
@@ -1700,13 +1700,6 @@ static int omap_nand_probe(struct platform_device *pdev)
                goto return_error;
        }
 
-       /* check for small page devices */
-       if ((mtd->oobsize < 64) && (pdata->ecc_opt != OMAP_ECC_HAM1_CODE_HW)) {
-               pr_err("small page devices are not supported\n");
-               err = -EINVAL;
-               goto return_error;
-       }
-
        /* re-populate low-level callbacks based on xfer modes */
        switch (pdata->xfer_type) {
        case NAND_OMAP_PREFETCH_POLLED: