mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-16 00:34:20 +08:00
[MTD] [OneNAND] Check the initial bad block using ONENAND_CTRL_ERROR
Some chips don't set the ONENAND_CTRL_LOAD bit. Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
This commit is contained in:
parent
e71f04fc92
commit
b2581be291
@ -1119,12 +1119,10 @@ static int onenand_bbt_wait(struct mtd_info *mtd, int state)
|
|||||||
interrupt = this->read_word(this->base + ONENAND_REG_INTERRUPT);
|
interrupt = this->read_word(this->base + ONENAND_REG_INTERRUPT);
|
||||||
ctrl = this->read_word(this->base + ONENAND_REG_CTRL_STATUS);
|
ctrl = this->read_word(this->base + ONENAND_REG_CTRL_STATUS);
|
||||||
|
|
||||||
|
/* Initial bad block case: 0x2400 or 0x0400 */
|
||||||
if (ctrl & ONENAND_CTRL_ERROR) {
|
if (ctrl & ONENAND_CTRL_ERROR) {
|
||||||
printk(KERN_DEBUG "onenand_bbt_wait: controller error = 0x%04x\n", ctrl);
|
printk(KERN_DEBUG "onenand_bbt_wait: controller error = 0x%04x\n", ctrl);
|
||||||
/* Initial bad block case */
|
return ONENAND_BBT_READ_ERROR;
|
||||||
if (ctrl & ONENAND_CTRL_LOAD)
|
|
||||||
return ONENAND_BBT_READ_ERROR;
|
|
||||||
return ONENAND_BBT_READ_FATAL_ERROR;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (interrupt & ONENAND_INT_READ) {
|
if (interrupt & ONENAND_INT_READ) {
|
||||||
|
Loading…
Reference in New Issue
Block a user