Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 332719
b: refs/heads/master
c: eceb84b
h: refs/heads/master
i:
  332717: af76192
  332715: 8183aab
  332711: e76a1e0
  332703: aa05bff
v: v3
  • Loading branch information
Shmulik Ladkani authored and David Woodhouse committed Sep 29, 2012
1 parent 2099c8c commit 4f0b917
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 13 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 19da4158d33053c6e91e95ee0663d625b2d32a77
refs/heads/master: eceb84b1886acb38e618f3dfb51cd4e53f2ddb97
24 changes: 12 additions & 12 deletions trunk/drivers/mtd/nand/nand_bbt.c
Original file line number Diff line number Diff line change
Expand Up @@ -401,7 +401,7 @@ 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 len)
int scanlen, int numpages)
{
int ret, j;

Expand All @@ -410,7 +410,7 @@ static int scan_block_full(struct mtd_info *mtd, struct nand_bbt_descr *bd,
if (ret && !mtd_is_bitflip_or_eccerr(ret))
return ret;

for (j = 0; j < len; j++, buf += scanlen) {
for (j = 0; j < numpages; j++, buf += scanlen) {
if (check_pattern(buf, scanlen, mtd->writesize, bd))
return 1;
}
Expand All @@ -419,7 +419,7 @@ static int scan_block_full(struct mtd_info *mtd, struct nand_bbt_descr *bd,

/* Scan a given block partially */
static int scan_block_fast(struct mtd_info *mtd, struct nand_bbt_descr *bd,
loff_t offs, uint8_t *buf, int len)
loff_t offs, uint8_t *buf, int numpages)
{
struct mtd_oob_ops ops;
int j, ret;
Expand All @@ -430,7 +430,7 @@ static int scan_block_fast(struct mtd_info *mtd, struct nand_bbt_descr *bd,
ops.datbuf = NULL;
ops.mode = MTD_OPS_PLACE_OOB;

for (j = 0; j < len; j++) {
for (j = 0; j < numpages; j++) {
/*
* Read the full oob until read_oob is fixed to handle single
* byte reads for 16 bit buswidth.
Expand Down Expand Up @@ -463,19 +463,19 @@ static int create_bbt(struct mtd_info *mtd, uint8_t *buf,
struct nand_bbt_descr *bd, int chip)
{
struct nand_chip *this = mtd->priv;
int i, numblocks, len, scanlen;
int i, numblocks, numpages, scanlen;
int startblock;
loff_t from;
size_t readlen;

pr_info("Scanning device for bad blocks\n");

if (bd->options & NAND_BBT_SCANALLPAGES)
len = 1 << (this->bbt_erase_shift - this->page_shift);
numpages = 1 << (this->bbt_erase_shift - this->page_shift);
else if (bd->options & NAND_BBT_SCAN2NDPAGE)
len = 2;
numpages = 2;
else
len = 1;
numpages = 1;

if (!(bd->options & NAND_BBT_SCANEMPTY)) {
/* We need only read few bytes from the OOB area */
Expand All @@ -484,7 +484,7 @@ static int create_bbt(struct mtd_info *mtd, uint8_t *buf,
} else {
/* Full page content should be read */
scanlen = mtd->writesize + mtd->oobsize;
readlen = len * mtd->writesize;
readlen = numpages * mtd->writesize;
}

if (chip == -1) {
Expand All @@ -508,7 +508,7 @@ static int create_bbt(struct mtd_info *mtd, uint8_t *buf,
}

if (this->bbt_options & NAND_BBT_SCANLASTPAGE)
from += mtd->erasesize - (mtd->writesize * len);
from += mtd->erasesize - (mtd->writesize * numpages);

for (i = startblock; i < numblocks;) {
int ret;
Expand All @@ -517,9 +517,9 @@ static int create_bbt(struct mtd_info *mtd, uint8_t *buf,

if (bd->options & NAND_BBT_SCANALLPAGES)
ret = scan_block_full(mtd, bd, from, buf, readlen,
scanlen, len);
scanlen, numpages);
else
ret = scan_block_fast(mtd, bd, from, buf, len);
ret = scan_block_fast(mtd, bd, from, buf, numpages);

if (ret < 0)
return ret;
Expand Down

0 comments on commit 4f0b917

Please sign in to comment.