mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-28 15:41:40 +00:00
mtd: rawnand: nand_base: Allow base driver to be used in SPL without nand_bbt
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
This commit is contained in:
parent
04fcd25873
commit
fa87360b3a
1 changed files with 17 additions and 1 deletions
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue