mtd: nand_bbt: kill NAND_BBT_SCANALLPAGES
Now that the last user of NAND_BBT_SCANALLPAGES has been removed, let's kill this peculiar BBT feature flag. Signed-off-by: Brian Norris <computersforpeace@gmail.com> Reviewed-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com> Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
This commit is contained in:
Родитель
9650b9bec6
Коммит
5961ad2cb4
|
@ -1222,8 +1222,6 @@ in this page</entry>
|
||||||
#define NAND_BBT_VERSION 0x00000100
|
#define NAND_BBT_VERSION 0x00000100
|
||||||
/* Create a bbt if none axists */
|
/* Create a bbt if none axists */
|
||||||
#define NAND_BBT_CREATE 0x00000200
|
#define NAND_BBT_CREATE 0x00000200
|
||||||
/* Search good / bad pattern through all pages of a block */
|
|
||||||
#define NAND_BBT_SCANALLPAGES 0x00000400
|
|
||||||
/* Write bbt if neccecary */
|
/* Write bbt if neccecary */
|
||||||
#define NAND_BBT_WRITE 0x00001000
|
#define NAND_BBT_WRITE 0x00001000
|
||||||
/* Read and write back block contents when writing bbt */
|
/* Read and write back block contents when writing bbt */
|
||||||
|
|
|
@ -412,25 +412,6 @@ static void read_abs_bbts(struct mtd_info *mtd, uint8_t *buf,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Scan a given block full */
|
|
||||||
static int scan_block_full(struct mtd_info *mtd, struct nand_bbt_descr *bd,
|
|
||||||
loff_t offs, uint8_t *buf, size_t readlen,
|
|
||||||
int scanlen, int numpages)
|
|
||||||
{
|
|
||||||
int ret, j;
|
|
||||||
|
|
||||||
ret = scan_read_oob(mtd, buf, offs, readlen);
|
|
||||||
/* Ignore ECC errors when checking for BBM */
|
|
||||||
if (ret && !mtd_is_bitflip_or_eccerr(ret))
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
for (j = 0; j < numpages; j++, buf += scanlen) {
|
|
||||||
if (check_pattern(buf, scanlen, mtd->writesize, bd))
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Scan a given block partially */
|
/* Scan a given block partially */
|
||||||
static int scan_block_fast(struct mtd_info *mtd, struct nand_bbt_descr *bd,
|
static int scan_block_fast(struct mtd_info *mtd, struct nand_bbt_descr *bd,
|
||||||
loff_t offs, uint8_t *buf, int numpages)
|
loff_t offs, uint8_t *buf, int numpages)
|
||||||
|
@ -477,24 +458,17 @@ static int create_bbt(struct mtd_info *mtd, uint8_t *buf,
|
||||||
struct nand_bbt_descr *bd, int chip)
|
struct nand_bbt_descr *bd, int chip)
|
||||||
{
|
{
|
||||||
struct nand_chip *this = mtd->priv;
|
struct nand_chip *this = mtd->priv;
|
||||||
int i, numblocks, numpages, scanlen;
|
int i, numblocks, numpages;
|
||||||
int startblock;
|
int startblock;
|
||||||
loff_t from;
|
loff_t from;
|
||||||
size_t readlen;
|
|
||||||
|
|
||||||
pr_info("Scanning device for bad blocks\n");
|
pr_info("Scanning device for bad blocks\n");
|
||||||
|
|
||||||
if (bd->options & NAND_BBT_SCANALLPAGES)
|
if (bd->options & NAND_BBT_SCAN2NDPAGE)
|
||||||
numpages = 1 << (this->bbt_erase_shift - this->page_shift);
|
|
||||||
else if (bd->options & NAND_BBT_SCAN2NDPAGE)
|
|
||||||
numpages = 2;
|
numpages = 2;
|
||||||
else
|
else
|
||||||
numpages = 1;
|
numpages = 1;
|
||||||
|
|
||||||
/* We need only read few bytes from the OOB area */
|
|
||||||
scanlen = 0;
|
|
||||||
readlen = bd->len;
|
|
||||||
|
|
||||||
if (chip == -1) {
|
if (chip == -1) {
|
||||||
numblocks = mtd->size >> this->bbt_erase_shift;
|
numblocks = mtd->size >> this->bbt_erase_shift;
|
||||||
startblock = 0;
|
startblock = 0;
|
||||||
|
@ -519,12 +493,7 @@ static int create_bbt(struct mtd_info *mtd, uint8_t *buf,
|
||||||
|
|
||||||
BUG_ON(bd->options & NAND_BBT_NO_OOB);
|
BUG_ON(bd->options & NAND_BBT_NO_OOB);
|
||||||
|
|
||||||
if (bd->options & NAND_BBT_SCANALLPAGES)
|
ret = scan_block_fast(mtd, bd, from, buf, numpages);
|
||||||
ret = scan_block_full(mtd, bd, from, buf, readlen,
|
|
||||||
scanlen, numpages);
|
|
||||||
else
|
|
||||||
ret = scan_block_fast(mtd, bd, from, buf, numpages);
|
|
||||||
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
|
|
@ -91,8 +91,6 @@ struct nand_bbt_descr {
|
||||||
* with NAND_BBT_CREATE.
|
* with NAND_BBT_CREATE.
|
||||||
*/
|
*/
|
||||||
#define NAND_BBT_CREATE_EMPTY 0x00000400
|
#define NAND_BBT_CREATE_EMPTY 0x00000400
|
||||||
/* Search good / bad pattern through all pages of a block */
|
|
||||||
#define NAND_BBT_SCANALLPAGES 0x00000800
|
|
||||||
/* Write bbt if neccecary */
|
/* Write bbt if neccecary */
|
||||||
#define NAND_BBT_WRITE 0x00002000
|
#define NAND_BBT_WRITE 0x00002000
|
||||||
/* Read and write back block contents when writing bbt */
|
/* Read and write back block contents when writing bbt */
|
||||||
|
|
Загрузка…
Ссылка в новой задаче