Handle Bus Pirates already in bit banging mode correctly

Thanks to Johannes Sjölund for reporting that the Bus Pirate init could
not deal with a Bus Pirate which is already in binary Bitbang mode.

This is caused by a combination of the slowness of the Bus Pirate, the
slowness of USB and a fast serial port flush routine which just flushes
the buffer contents and does not wait until data arrival stops.

Make the Bus Pirate init more robust by running the flush command 10
times with 1.5 ms delay in between.

This code development was sponsored by Mattias Mattsson. Thanks! Tested
a few dozen times, should work reliably.

Corresponding to flashrom svn r1178.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Mattias Mattsson <vitplister@gmail.com>
diff --git a/serial.c b/serial.c
index caf9389..9957fb4 100644
--- a/serial.c
+++ b/serial.c
@@ -200,8 +200,10 @@
 #else
 		tmp = write(sp_fd, buf, writecnt);
 #endif
-		if (tmp == -1)
+		if (tmp == -1) {
+			msg_perr("Serial port write error!\n");
 			return 1;
+		}
 		if (!tmp)
 			msg_pdbg("Empty write\n");
 		writecnt -= tmp; 
@@ -221,8 +223,10 @@
 #else
 		tmp = read(sp_fd, buf, readcnt);
 #endif
-		if (tmp == -1)
+		if (tmp == -1) {
+			msg_perr("Serial port read error!\n");
 			return 1;
+		}
 		if (!tmp)
 			msg_pdbg("Empty read\n");
 		readcnt -= tmp;