Finalized TODO list for NAND and JFFS...
Nick Ivanter
nick at auriga.ru
Wed Sep 27 09:21:48 EDT 2000
Please, find the patch attached.
David Woodhouse wrote:
> nick at auriga.ru said:
> > By the way, can't we shorten mount time for Intel chips by rewriting
> > read routines in such a way that they don't send Read Status Register
> > command when chip->status is FL_READY?
>
> Yes - well spotted.
>
> nick at auriga.ru said:
> > So the question, as I can see it, is can we be sure that Status
> > Register has 7th bit set when chip->status == FL_READY?
>
> Yes. If that's ever _not_ the case, then consider it a bug in whatever code
> is setting the state to FL_READY.
>
> Please supply either a SSH public key, so I can give you write access to
> CVS, or a patch that I can apply. The former is probably better.
>
> --
> dwmw2
>
> To unsubscribe, send "unsubscribe mtd" to majordomo at infradead.org
-------------- next part --------------
--- cfi_cmdset_0001.c 2000/09/15 14:35:22 1.34
+++ cfi_cmdset_0001.c 2000/09/27 13:17:39
@@ -271,15 +271,18 @@
/* Remember the status so we know whether to restart
the erase later */
suspendedstate = status;
+ map->write16(map, cpu_to_le16(0x00ff), cmd_addr);
+ chip->state = FL_READY;
break;
#if 0
case FL_WRITING:
/* Not quite yet */
#endif
+ case FL_READY:
+ break;
case FL_CFI_QUERY:
case FL_JEDEC_QUERY:
- case FL_READY:
map->write16(map, cpu_to_le16(0x0070), cmd_addr);
chip->state = FL_STATUS;
@@ -306,6 +309,8 @@
goto retry;
}
+ map->write16(map, cpu_to_le16(0x00ff), cmd_addr);
+ chip->state = FL_READY;
break;
default:
@@ -330,9 +335,6 @@
goto retry;
}
- map->write16(map, cpu_to_le16(0x00ff), cmd_addr);
- chip->state = FL_READY;
-
map->copy_from(map, buf, adr, len);
if (suspendedstate) {
@@ -1247,15 +1249,18 @@
/* Remember the status so we know whether to restart
the erase later */
suspendedstate = status;
+ map->write8(map, 0xff, adr);
+ chip->state = FL_READY;
break;
#if 0
case FL_WRITING:
/* Not quite yet */
#endif
+ case FL_READY:
+ break;
case FL_CFI_QUERY:
case FL_JEDEC_QUERY:
- case FL_READY:
map->write8(map, 0x70, adr);
chip->state = FL_STATUS;
@@ -1282,6 +1287,8 @@
goto retry;
}
+ map->write8(map, 0xff, adr);
+ chip->state = FL_READY;
break;
default:
@@ -1305,9 +1312,6 @@
goto retry;
}
-
- map->write8(map, 0xff, adr);
- chip->state = FL_READY;
map->copy_from(map, buf, adr, len);
More information about the linux-mtd
mailing list