From 2321bb3c42b1d47374e51d9e5aa548a37a70b53a Mon Sep 17 00:00:00 2001 From: Øyvind Harboe Date: Thu, 3 Mar 2011 09:22:25 +0100 Subject: zy1000: fix JTAG over TCP/IP performance problem MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit only flush write queue just before waiting for more data, rather than when fetching more data from the buffer. Signed-off-by: Øyvind Harboe --- src/jtag/zy1000/zy1000.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'src') 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)); -- cgit v1.2.3