From: Øyvind Harboe Date: Thu, 3 Mar 2011 08:22:25 +0000 (+0100) Subject: zy1000: fix JTAG over TCP/IP performance problem X-Git-Tag: v0.5.0-rc1~139 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=2321bb3c42b1d47374e51d9e5aa548a37a70b53a;p=openocd zy1000: fix JTAG over TCP/IP performance problem only flush write queue just before waiting for more data, rather than when fetching more data from the buffer. Signed-off-by: Øyvind Harboe --- diff --git a/src/jtag/zy1000/zy1000.c b/src/jtag/zy1000/zy1000.c index a8f7ffc7..f9721917 100644 --- a/src/jtag/zy1000/zy1000.c +++ b/src/jtag/zy1000/zy1000.c @@ -1063,14 +1063,6 @@ static bool writeLong(uint32_t l) static bool readLong(uint32_t *out_data) { - if (out_pos > 0) - { - if (!flush_writes()) - { - return false; - } - } - uint32_t data = 0; int i; for (i = 0; i < 4; i++) @@ -1078,6 +1070,17 @@ static bool readLong(uint32_t *out_data) uint8_t c; if (in_pos == in_write) { + /* If we have some data that we can send, send them before + * we wait for more data + */ + if (out_pos > 0) + { + if (!flush_writes()) + { + return false; + } + } + /* read more */ int t; t = read(tcp_ip, in_buffer, sizeof(in_buffer));