diff options
| -rw-r--r-- | drivers/mtd/nand/omap2.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/mtd/nand/omap2.c b/drivers/mtd/nand/omap2.c index 0cd76f89f4b0..ebd07e95b814 100644 --- a/drivers/mtd/nand/omap2.c +++ b/drivers/mtd/nand/omap2.c | |||
| @@ -11,6 +11,8 @@ | |||
| 11 | #include <linux/platform_device.h> | 11 | #include <linux/platform_device.h> |
| 12 | #include <linux/dma-mapping.h> | 12 | #include <linux/dma-mapping.h> |
| 13 | #include <linux/delay.h> | 13 | #include <linux/delay.h> |
| 14 | #include <linux/jiffies.h> | ||
| 15 | #include <linux/sched.h> | ||
| 14 | #include <linux/mtd/mtd.h> | 16 | #include <linux/mtd/mtd.h> |
| 15 | #include <linux/mtd/nand.h> | 17 | #include <linux/mtd/nand.h> |
| 16 | #include <linux/mtd/partitions.h> | 18 | #include <linux/mtd/partitions.h> |
| @@ -541,7 +543,7 @@ static int omap_wait(struct mtd_info *mtd, struct nand_chip *chip) | |||
| 541 | struct omap_nand_info *info = container_of(mtd, struct omap_nand_info, | 543 | struct omap_nand_info *info = container_of(mtd, struct omap_nand_info, |
| 542 | mtd); | 544 | mtd); |
| 543 | unsigned long timeo = jiffies; | 545 | unsigned long timeo = jiffies; |
| 544 | int status, state = this->state; | 546 | int status = NAND_STATUS_FAIL, state = this->state; |
| 545 | 547 | ||
| 546 | if (state == FL_ERASING) | 548 | if (state == FL_ERASING) |
| 547 | timeo += (HZ * 400) / 1000; | 549 | timeo += (HZ * 400) / 1000; |
| @@ -556,8 +558,9 @@ static int omap_wait(struct mtd_info *mtd, struct nand_chip *chip) | |||
| 556 | 558 | ||
| 557 | while (time_before(jiffies, timeo)) { | 559 | while (time_before(jiffies, timeo)) { |
| 558 | status = __raw_readb(this->IO_ADDR_R); | 560 | status = __raw_readb(this->IO_ADDR_R); |
| 559 | if (!(status & 0x40)) | 561 | if (status & NAND_STATUS_READY) |
| 560 | break; | 562 | break; |
| 563 | cond_resched(); | ||
| 561 | } | 564 | } |
| 562 | return status; | 565 | return status; |
| 563 | } | 566 | } |
