|
|
@@ -1,62 +0,0 @@
|
|
|
---- a/drivers/mtd/chips/cfi_cmdset_0002.c
|
|
|
-+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
|
|
|
-@@ -1641,7 +1641,7 @@ static int __xipram do_write_oneword(str
|
|
|
- }
|
|
|
-
|
|
|
- if (chip_good(map, adr, datum))
|
|
|
-- break;
|
|
|
-+ goto enable_xip;
|
|
|
-
|
|
|
- /* Latency issues. Drop the lock, wait a while and retry */
|
|
|
- UDELAY(map, chip, adr, 1);
|
|
|
-@@ -1658,6 +1658,8 @@ static int __xipram do_write_oneword(str
|
|
|
- goto retry;
|
|
|
- }
|
|
|
- }
|
|
|
-+
|
|
|
-+ enable_xip:
|
|
|
- xip_enable(map, chip, adr);
|
|
|
- op_done:
|
|
|
- if (mode == FL_OTP_WRITE)
|
|
|
-@@ -2236,7 +2238,6 @@ static int cfi_amdstd_panic_write(struct
|
|
|
- return 0;
|
|
|
- }
|
|
|
-
|
|
|
--
|
|
|
- /*
|
|
|
- * Handle devices with one erase region, that only implement
|
|
|
- * the chip erase command.
|
|
|
-@@ -2304,7 +2305,7 @@ static int __xipram do_erase_chip(struct
|
|
|
- }
|
|
|
-
|
|
|
- if (chip_good(map, adr, map_word_ff(map)))
|
|
|
-- break;
|
|
|
-+ goto op_done;
|
|
|
-
|
|
|
- if (time_after(jiffies, timeo)) {
|
|
|
- printk(KERN_WARNING "MTD %s(): software timeout\n",
|
|
|
-@@ -2328,6 +2329,7 @@ static int __xipram do_erase_chip(struct
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-+ op_done:
|
|
|
- chip->state = FL_READY;
|
|
|
- xip_enable(map, chip, adr);
|
|
|
- DISABLE_VPP(map);
|
|
|
-@@ -2401,7 +2403,7 @@ static int __xipram do_erase_oneblock(st
|
|
|
-
|
|
|
- if (chip_good(map, adr, map_word_ff(map))) {
|
|
|
- xip_enable(map, chip, adr);
|
|
|
-- break;
|
|
|
-+ goto op_done;
|
|
|
- }
|
|
|
-
|
|
|
- if (time_after(jiffies, timeo)) {
|
|
|
-@@ -2427,6 +2429,7 @@ static int __xipram do_erase_oneblock(st
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-+ op_done:
|
|
|
- chip->state = FL_READY;
|
|
|
- DISABLE_VPP(map);
|
|
|
- put_chip(map, chip, adr);
|