Handle programmer init errors and abort

If the programmer didn't initialize correctly, it is pointless to
continue.

Fix standalone IT87* SPI init to set flashbus to NONE if no IT87* SPI
communication is possible. Print the I/O port detected by the IT87* SPI
code.

Corresponding to flashrom svn r633.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Ward Vandewege <ward@gnu.org>
diff --git a/flashrom.c b/flashrom.c
index 7bc9b71..5791372 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -692,7 +692,10 @@
 	if (optind < argc)
 		filename = argv[optind++];
 
-	ret = programmer_init();
+	if (programmer_init()) {
+		fprintf(stderr, "Error: Programmer initialization failed.\n");
+		exit(1);
+	}
 
 	myusec_calibrate_delay();
 
diff --git a/it87spi.c b/it87spi.c
index 5183bae..67dfd2b 100644
--- a/it87spi.c
+++ b/it87spi.c
@@ -83,11 +83,12 @@
 			tmp |= 1 << 4;
 			sio_write(port, 0x24, tmp);
 		}
-		printf("serial flash pin %i\n", (tmp & 1 << 5) ? 87 : 29);
+		printf("Serial flash pin %i\n", (tmp & 1 << 5) ? 87 : 29);
 		/* LDN 0x7, reg 0x64/0x65 */
 		sio_write(port, 0x07, 0x7);
 		flashport = sio_read(port, 0x64) << 8;
 		flashport |= sio_read(port, 0x65);
+		printf("Serial flash port 0x%04x\n", flashport);
 	}
 	exit_conf_mode_ite(port);
 	return flashport;
@@ -113,8 +114,11 @@
 
 	get_io_perms();
 	ret = it87spi_common_init();
-	if (!ret)
+	if (!ret) {
 		buses_supported = CHIP_BUSTYPE_SPI;
+	} else {
+		buses_supported = CHIP_BUSTYPE_NONE;
+	}
 	return ret;
 }