aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/mtd/chips/cfi_cmdset_0002.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c
index e3d31c749045..50dd7d2f096d 100644
--- a/drivers/mtd/chips/cfi_cmdset_0002.c
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
@@ -17,7 +17,7 @@
17 * 17 *
18 * This code is GPL 18 * This code is GPL
19 * 19 *
20 * $Id: cfi_cmdset_0002.c,v 1.120 2005/07/20 21:01:13 tpoynor Exp $ 20 * $Id: cfi_cmdset_0002.c,v 1.121 2005/11/07 09:00:01 gleixner Exp $
21 * 21 *
22 */ 22 */
23 23
@@ -1014,16 +1014,16 @@ static int __xipram do_write_oneword(struct map_info *map, struct flchip *chip,
1014 continue; 1014 continue;
1015 } 1015 }
1016 1016
1017 if (chip_ready(map, adr)) 1017 if (time_after(jiffies, timeo) && !chip_ready(map, adr)){
1018 break;
1019
1020 if (time_after(jiffies, timeo)) {
1021 xip_enable(map, chip, adr); 1018 xip_enable(map, chip, adr);
1022 printk(KERN_WARNING "MTD %s(): software timeout\n", __func__); 1019 printk(KERN_WARNING "MTD %s(): software timeout\n", __func__);
1023 xip_disable(map, chip, adr); 1020 xip_disable(map, chip, adr);
1024 break; 1021 break;
1025 } 1022 }
1026 1023
1024 if (chip_ready(map, adr))
1025 break;
1026
1027 /* Latency issues. Drop the lock, wait a while and retry */ 1027 /* Latency issues. Drop the lock, wait a while and retry */
1028 UDELAY(map, chip, adr, 1); 1028 UDELAY(map, chip, adr, 1);
1029 } 1029 }
@@ -1275,13 +1275,13 @@ static int __xipram do_write_buffer(struct map_info *map, struct flchip *chip,
1275 continue; 1275 continue;
1276 } 1276 }
1277 1277
1278 if (time_after(jiffies, timeo) && !chip_ready(map, adr))
1279 break;
1280
1278 if (chip_ready(map, adr)) { 1281 if (chip_ready(map, adr)) {
1279 xip_enable(map, chip, adr); 1282 xip_enable(map, chip, adr);
1280 goto op_done; 1283 goto op_done;
1281 } 1284 }
1282
1283 if( time_after(jiffies, timeo))
1284 break;
1285 1285
1286 /* Latency issues. Drop the lock, wait a while and retry */ 1286 /* Latency issues. Drop the lock, wait a while and retry */
1287 UDELAY(map, chip, adr, 1); 1287 UDELAY(map, chip, adr, 1);