*** linux-orig/drivers/mtd/nand/nand.c Wed Dec 18 19:52:24 2002 --- linux/drivers/mtd/nand/nand.c Mon Sep 15 21:11:12 2003 *************** *** 786,791 **** --- 786,794 ---- int col, page; int erase_state = 0; struct nand_chip *this = mtd->priv; + #ifdef CONFIG_ARCH_SHARP_SL + int retval = 0; + #endif DEBUG (MTD_DEBUG_LEVEL3, "nand_read_oob: from = 0x%08x, len = %i\n", (unsigned int) from, (int) len); *************** *** 827,832 **** --- 830,851 ---- udelay (this->chip_delay); } + #ifdef CONFIG_ARCH_SHARP_SL + if (!this->dev_ready) + udelay (this->chip_delay); + else { + int i; + for (i = 0; i < NAND_BUSY_TIMEOUT; i++) + if (this->dev_ready()) + break; + if (i == NAND_BUSY_TIMEOUT) { + retval = -EIO; + break; + } + + } + #endif + col = 0; page++; len -= tmp_len; *************** *** 844,850 **** --- 863,873 ---- spin_unlock_bh (&this->chip_lock); /* Return happy */ + #ifdef CONFIG_ARCH_SHARP_SL + return retval; + #else return 0; + #endif } /*