Fix message printing for SPI RES on spew level

Use a blacklist instead of a whitelist for 4-byte SPI RDID.
Tell users where to report bugs.

Corresponding to flashrom svn r1051.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Sean Nelson <audiohacked@gmail.com>
diff --git a/spi25.c b/spi25.c
index c6b5119..88a404a 100644
--- a/spi25.c
+++ b/spi25.c
@@ -72,6 +72,7 @@
 	unsigned char cmd[JEDEC_RES_OUTSIZE] = { JEDEC_RES, 0, 0, 0 };
 	uint32_t readaddr;
 	int ret;
+	int i;
 
 	ret = spi_send_command(sizeof(cmd), bytes, cmd, readarr);
 	if (ret == SPI_INVALID_ADDRESS) {
@@ -84,7 +85,10 @@
 	}
 	if (ret)
 		return ret;
-	msg_cspew("RES returned %02x. ", readarr[0]);
+	msg_cspew("RES returned");
+	for (i = 0; i < bytes; i++)
+		msg_cspew(" 0x%02x", readarr[i]);
+	msg_cspew(". ");
 	return 0;
 }
 
@@ -122,7 +126,9 @@
 	if (!oddparity(readarr[0]))
 		msg_cdbg("RDID byte 0 parity violation. ");
 
-	/* Check if this is a continuation vendor ID */
+	/* Check if this is a continuation vendor ID.
+	 * FIXME: Handle continuation device IDs.
+	 */
 	if (readarr[0] == 0x7f) {
 		if (!oddparity(readarr[1]))
 			msg_cdbg("RDID byte 1 parity violation. ");
@@ -166,35 +172,23 @@
 	return probe_spi_rdid_generic(flash, 3);
 }
 
-/* support 4 bytes flash ID */
 int probe_spi_rdid4(struct flashchip *flash)
 {
-	/* only some SPI chipsets support 4 bytes commands */
+	/* Some SPI controllers do not support commands with writecnt=1 and
+	 * readcnt=4.
+	 */
 	switch (spi_controller) {
 #if CONFIG_INTERNAL == 1
 #if defined(__i386__) || defined(__x86_64__)
-	case SPI_CONTROLLER_ICH7:
-	case SPI_CONTROLLER_ICH9:
-	case SPI_CONTROLLER_VIA:
-	case SPI_CONTROLLER_SB600:
+	case SPI_CONTROLLER_IT87XX:
 	case SPI_CONTROLLER_WBSIO:
+		msg_cinfo("4 byte RDID not supported on this SPI controller\n");
+		return 0;
+		break;
 #endif
 #endif
-#if CONFIG_FT2232_SPI == 1
-	case SPI_CONTROLLER_FT2232:
-#endif
-#if CONFIG_DUMMY == 1
-	case SPI_CONTROLLER_DUMMY:
-#endif
-#if CONFIG_BUSPIRATE_SPI == 1
-	case SPI_CONTROLLER_BUSPIRATE:
-#endif
-#if CONFIG_DEDIPROG == 1
-	case SPI_CONTROLLER_DEDIPROG:
-#endif
-		return probe_spi_rdid_generic(flash, 4);
 	default:
-		msg_cinfo("4b ID not supported on this SPI controller\n");
+		return probe_spi_rdid_generic(flash, 4);
 	}
 
 	return 0;