- ftdi_write_data(&ftdic, writebuf, writepos-writebuf);
- DPRINTF("reading %d bytes\n", writepos-writebuf);
+ for (i=0; i<writepos-writebuf; i++) {
+#if 1
+ int combine = i;
+
+ do {
+ if (combine > 0 &&
+ tr[combine-1].cmdTrans == PP_READ) {
+ break;
+ } else {
+ combine++;
+ }
+ } while (combine < writepos-writebuf);
+
+ DPRINTF("combined writes before read: %d\n", combine);
+
+ if ((combine-i)-1 > 0) {
+ ftdi_write_data(&ftdic, writebuf+i, (combine-i)-1);
+ i = combine-1;
+ }
+#endif
+
+ ftdi_write_data(&ftdic, writebuf+i, 1);