]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
mtd: rawnand: nand_base: Allow base driver to be used in SPL without nand_bbt
authorRoger Quadros <rogerq@kernel.org>
Tue, 20 Dec 2022 10:21:57 +0000 (12:21 +0200)
committerDario Binacchi <dario.binacchi@amarulasolutions.com>
Sun, 8 Jan 2023 09:38:30 +0000 (10:38 +0100)
nand_bbt.c is not being built with the nand_base driver during SPL
build. This results in build failures if we try to access any nand_bbt
related functions.

Don't use any nand_bbt functions for SPL build.

Signed-off-by: Roger Quadros <rogerq@kernel.org>
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
Link: https://lore.kernel.org/all/20221220102203.52398-3-rogerq@kernel.org
drivers/mtd/nand/raw/nand_base.c

index bc61ad03eb05e53ecf0950cb9e7b8fa5dacb75e0..9eba360d55f300d33a36085d1a0864799a19c16d 100644 (file)
@@ -447,7 +447,10 @@ static int nand_default_block_markbad(struct mtd_info *mtd, loff_t ofs)
 static int nand_block_markbad_lowlevel(struct mtd_info *mtd, loff_t ofs)
 {
        struct nand_chip *chip = mtd_to_nand(mtd);
-       int res, ret = 0;
+       int ret = 0;
+#ifndef CONFIG_SPL_BUILD
+       int res;
+#endif
 
        if (!(chip->bbt_options & NAND_BBT_NO_OOB_BBM)) {
                struct erase_info einfo;
@@ -465,12 +468,14 @@ static int nand_block_markbad_lowlevel(struct mtd_info *mtd, loff_t ofs)
                nand_release_device(mtd);
        }
 
+#ifndef CONFIG_SPL_BUILD
        /* Mark block bad in BBT */
        if (chip->bbt) {
                res = nand_markbad_bbt(mtd, ofs);
                if (!ret)
                        ret = res;
        }
+#endif
 
        if (!ret)
                mtd->ecc_stats.badblocks++;
@@ -517,7 +522,11 @@ static int nand_block_isreserved(struct mtd_info *mtd, loff_t ofs)
        if (!chip->bbt)
                return 0;
        /* Return info from the table */
+#ifndef CONFIG_SPL_BUILD
        return nand_isreserved_bbt(mtd, ofs);
+#else
+       return 0;
+#endif
 }
 
 /**
@@ -543,7 +552,11 @@ static int nand_block_checkbad(struct mtd_info *mtd, loff_t ofs, int allowbbt)
                return chip->block_bad(mtd, ofs);
 
        /* Return info from the table */
+#ifndef CONFIG_SPL_BUILD
        return nand_isbad_bbt(mtd, ofs, allowbbt);
+#else
+       return 0;
+#endif
 }
 
 /**
@@ -3752,8 +3765,11 @@ static void nand_set_defaults(struct nand_chip *chip, int busw)
                chip->write_byte = busw ? nand_write_byte16 : nand_write_byte;
        if (!chip->read_buf || chip->read_buf == nand_read_buf)
                chip->read_buf = busw ? nand_read_buf16 : nand_read_buf;
+
+#ifndef CONFIG_SPL_BUILD
        if (!chip->scan_bbt)
                chip->scan_bbt = nand_default_bbt;
+#endif
 
        if (!chip->controller) {
                chip->controller = &chip->hwcontrol;