--- a/drivers/mtd/chips/cfi_cmdset_0002.c +++ b/drivers/mtd/chips/cfi_cmdset_0002.c @@ -1633,8 +1633,8 @@ static int __xipram do_write_oneword(str break; } - if (chip_ready(map, adr)) - break; + if (chip_good(map, adr, datum)) + goto enable_xip; /* Latency issues. Drop the lock, wait a while and retry */ UDELAY(map, chip, adr, 1); @@ -1650,6 +1650,8 @@ static int __xipram do_write_oneword(str ret = -EIO; } + + enable_xip: xip_enable(map, chip, adr); op_done: if (mode == FL_OTP_WRITE)