Commit 1a12f46a authored by Thomas Knobloch's avatar Thomas Knobloch Committed by David Woodhouse

[MTD] [NAND] Tidy up handling of page number in nand_block_bad()

Further to the previous patch fixing the calculation of page number,
both branches are using the same result. Clean up the function 
accordingly, calculating it (and also masking with pagemask) only in one 
place.
Signed-off-by: default avatarThomas Knobloch <knobloch@siemens.com>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Signed-off-by: default avatarDavid Woodhouse <dwmw2@infradead.org>
parent 4839f048
...@@ -303,28 +303,27 @@ static int nand_block_bad(struct mtd_info *mtd, loff_t ofs, int getchip) ...@@ -303,28 +303,27 @@ static int nand_block_bad(struct mtd_info *mtd, loff_t ofs, int getchip)
struct nand_chip *chip = mtd->priv; struct nand_chip *chip = mtd->priv;
u16 bad; u16 bad;
page = (int)(ofs >> chip->page_shift) & chip->pagemask;
if (getchip) { if (getchip) {
page = (int)(ofs >> chip->page_shift);
chipnr = (int)(ofs >> chip->chip_shift); chipnr = (int)(ofs >> chip->chip_shift);
nand_get_device(chip, mtd, FL_READING); nand_get_device(chip, mtd, FL_READING);
/* Select the NAND device */ /* Select the NAND device */
chip->select_chip(mtd, chipnr); chip->select_chip(mtd, chipnr);
} else }
page = (int)(ofs >> chip->page_shift);
if (chip->options & NAND_BUSWIDTH_16) { if (chip->options & NAND_BUSWIDTH_16) {
chip->cmdfunc(mtd, NAND_CMD_READOOB, chip->badblockpos & 0xFE, chip->cmdfunc(mtd, NAND_CMD_READOOB, chip->badblockpos & 0xFE,
page & chip->pagemask); page);
bad = cpu_to_le16(chip->read_word(mtd)); bad = cpu_to_le16(chip->read_word(mtd));
if (chip->badblockpos & 0x1) if (chip->badblockpos & 0x1)
bad >>= 8; bad >>= 8;
if ((bad & 0xFF) != 0xff) if ((bad & 0xFF) != 0xff)
res = 1; res = 1;
} else { } else {
chip->cmdfunc(mtd, NAND_CMD_READOOB, chip->badblockpos, chip->cmdfunc(mtd, NAND_CMD_READOOB, chip->badblockpos, page);
page & chip->pagemask);
if (chip->read_byte(mtd) != 0xff) if (chip->read_byte(mtd) != 0xff)
res = 1; res = 1;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment