|
@@ -753,6 +753,16 @@ static void nand_command(struct mtd_info *mtd, unsigned int command,
|
|
|
return;
|
|
|
|
|
|
/* This applies to read commands */
|
|
|
+ case NAND_CMD_READ0:
|
|
|
+ /*
|
|
|
+ * READ0 is sometimes used to exit GET STATUS mode. When this
|
|
|
+ * is the case no address cycles are requested, and we can use
|
|
|
+ * this information to detect that we should not wait for the
|
|
|
+ * device to be ready.
|
|
|
+ */
|
|
|
+ if (column == -1 && page_addr == -1)
|
|
|
+ return;
|
|
|
+
|
|
|
default:
|
|
|
/*
|
|
|
* If we don't have access to the busy pin, we apply the given
|
|
@@ -887,6 +897,15 @@ static void nand_command_lp(struct mtd_info *mtd, unsigned int command,
|
|
|
return;
|
|
|
|
|
|
case NAND_CMD_READ0:
|
|
|
+ /*
|
|
|
+ * READ0 is sometimes used to exit GET STATUS mode. When this
|
|
|
+ * is the case no address cycles are requested, and we can use
|
|
|
+ * this information to detect that READSTART should not be
|
|
|
+ * issued.
|
|
|
+ */
|
|
|
+ if (column == -1 && page_addr == -1)
|
|
|
+ return;
|
|
|
+
|
|
|
chip->cmd_ctrl(mtd, NAND_CMD_READSTART,
|
|
|
NAND_NCE | NAND_CLE | NAND_CTRL_CHANGE);
|
|
|
chip->cmd_ctrl(mtd, NAND_CMD_NONE,
|