Patchwork [MTD,NAND] nandsim: suppress unnecessary warning

login
register
mail settings
Submitter Adrian Hunter
Date Nov. 12, 2008, 2:06 p.m.
Message ID <491AE2F0.7040200@nokia.com>
Download mbox | patch
Permalink /patch/8383/
State Accepted
Headers show

Comments

Adrian Hunter - Nov. 12, 2008, 2:06 p.m.
nand_base sometimes reads only 2 bytes of a 4 byte id.
It is OK.  Do not print a warning in that case.

Signed-off-by: Adrian Hunter <ext-adrian.hunter@nokia.com>
---
 drivers/mtd/nand/nandsim.c |   18 +++++++++++-------
 1 files changed, 11 insertions(+), 7 deletions(-)
Artem Bityutskiy - Nov. 13, 2008, 12:27 p.m.
On Wed, 2008-11-12 at 16:06 +0200, Adrian Hunter wrote:
> nand_base sometimes reads only 2 bytes of a 4 byte id.
> It is OK.  Do not print a warning in that case.
> 
> Signed-off-by: Adrian Hunter <ext-adrian.hunter@nokia.com>

Acked-by: Artem Bityutskiy <dedekind@infradead.org>

Patch

diff --git a/drivers/mtd/nand/nandsim.c b/drivers/mtd/nand/nandsim.c
index 1045de9..baa6f95 100644
--- a/drivers/mtd/nand/nandsim.c
+++ b/drivers/mtd/nand/nandsim.c
@@ -1973,13 +1973,17 @@  static void ns_nand_write_byte(struct mtd_info *mtd, u_char byte)
 
 		/* Check if chip is expecting command */
 		if (NS_STATE(ns->nxstate) != STATE_UNKNOWN && !(ns->nxstate & STATE_CMD_MASK)) {
-			/*
-			 * We are in situation when something else (not command)
-			 * was expected but command was input. In this case ignore
-			 * previous command(s)/state(s) and accept the last one.
-			 */
-			NS_WARN("write_byte: command (%#x) wasn't expected, expected state is %s, "
-				"ignore previous states\n", (uint)byte, get_state_name(ns->nxstate));
+			/* Do not warn if only 2 id bytes are read */
+			if (!(ns->regs.command == NAND_CMD_READID &&
+			    NS_STATE(ns->state) == STATE_DATAOUT_ID && ns->regs.count == 2)) {
+				/*
+				 * We are in situation when something else (not command)
+				 * was expected but command was input. In this case ignore
+				 * previous command(s)/state(s) and accept the last one.
+				 */
+				NS_WARN("write_byte: command (%#x) wasn't expected, expected state is %s, "
+					"ignore previous states\n", (uint)byte, get_state_name(ns->nxstate));
+			}
 			switch_to_ready_state(ns, NS_STATUS_FAILED(ns));
 		}