From 796fa81a2b361fa0606f141906734672c910b343 Mon Sep 17 00:00:00 2001
From: drath <drath@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Date: Wed, 27 Feb 2008 06:59:35 +0000
Subject: - fix bug in ft2232 pathmove (thanks to Michael Bruck for the patch)

git-svn-id: svn://svn.berlios.de/openocd/trunk@357 b42882b7-edfa-0310-969c-e2dbd0fdcd60
---
 src/jtag/ft2232.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

(limited to 'src')

diff --git a/src/jtag/ft2232.c b/src/jtag/ft2232.c
index d5c4af25..1a058675 100644
--- a/src/jtag/ft2232.c
+++ b/src/jtag/ft2232.c
@@ -459,12 +459,14 @@ void ft2232_add_pathmove(pathmove_command_t *cmd)
 		tms_byte = 0x0;
 		int bit_count = 0;
 		
+		int num_states_batch = num_states > 7 ? 7 : num_states;
+
 		/* command "Clock Data to TMS/CS Pin (no Read)" */
 		BUFFER_ADD = 0x4b;
 		/* number of states remaining */
-		BUFFER_ADD = (num_states % 7) - 1;
+		BUFFER_ADD = num_states_batch - 1;
 		
-		while (num_states % 7)
+		while (num_states_batch--)
 		{
 			if (tap_transitions[cur_state].low == cmd->path[state_count])
 				buf_set_u32(&tms_byte, bit_count++, 1, 0x0);
-- 
cgit v1.2.3