ichspi: improve prettyprint_opcodes

Add headers for the columns and some decoding into human readable format.

Corresponding to flashrom svn r1444.

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
diff --git a/ichspi.c b/ichspi.c
index 3bc43f5..caea663 100644
--- a/ichspi.c
+++ b/ichspi.c
@@ -294,22 +294,34 @@
 /* pretty printing functions */
 static void prettyprint_opcodes(OPCODES *ops)
 {
-	if(ops == NULL)
+	OPCODE oc;
+	const char *t;
+	const char *a;
+	uint8_t i;
+	static const char *const spi_type[4] = {
+		"read  w/o addr",
+		"write w/o addr",
+		"read  w/  addr",
+		"write w/  addr"
+	};
+	static const char *const atomic_type[3] = {
+		"none",
+		" 0  ",
+		" 1  "
+	};
+
+	if (ops == NULL)
 		return;
 
-	msg_pdbg("preop0=0x%02x, preop1=0x%02x\n", ops->preop[0],
-		 ops->preop[1]);
-
-	OPCODE oc;
-	uint8_t i;
+	msg_pdbg2("        OP        Type      Pre-OP\n");
 	for (i = 0; i < 8; i++) {
 		oc = ops->opcode[i];
-		msg_pdbg("op[%d]=0x%02x, %d, %d\n",
-			 i,
-			 oc.opcode,
-			 oc.spi_type,
-			 oc.atomic);
+		t = (oc.spi_type > 3) ? "invalid" : spi_type[oc.spi_type];
+		a = (oc.atomic > 2) ? "invalid" : atomic_type[oc.atomic];
+		msg_pdbg2("op[%d]: 0x%02x, %s, %s\n", i, oc.opcode, t, a);
 	}
+	msg_pdbg2("Pre-OP 0: 0x%02x, Pre-OP 1: 0x%02x\n", ops->preop[0],
+		 ops->preop[1]);
 }
 
 #define pprint_reg(reg, bit, val, sep) msg_pdbg("%s=%d" sep, #bit, (val & reg##_##bit)>>reg##_##bit##_OFF)
@@ -672,7 +684,6 @@
 		curopcodes = curopcodes_done;
 		msg_pdbg("done\n");
 		prettyprint_opcodes(curopcodes);
-		msg_pdbg("\n");
 		return 0;
 	}
 }