From 06f33996e87f6fddb241b2d6ebde552619440adc Mon Sep 17 00:00:00 2001
From: mifi <mifi@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Date: Tue, 22 Jan 2008 17:54:56 +0000
Subject: [PATCH] - added patch to fix brocken STR9 line (thanks to oyvind
 Harboe for the patch)

git-svn-id: svn://svn.berlios.de/openocd/trunk@273 b42882b7-edfa-0310-969c-e2dbd0fdcd60
---
 src/jtag/jtag.c | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/src/jtag/jtag.c b/src/jtag/jtag.c
index 2d3d8c54b..c205d8374 100644
--- a/src/jtag/jtag.c
+++ b/src/jtag/jtag.c
@@ -425,16 +425,7 @@ int jtag_add_ir_scan(int num_fields, scan_field_t *fields, enum tap_state state,
 		(*last_cmd)->cmd.scan->fields[i].device = i;
 		(*last_cmd)->cmd.scan->fields[i].num_bits = scan_size;
 		(*last_cmd)->cmd.scan->fields[i].in_value = NULL;
-		if ((jtag_verify_capture_ir)&&(fields[i].in_handler==NULL))
-		{
-			jtag_set_check_value((*last_cmd)->cmd.scan->fields+i, device->expected, device->expected_mask, NULL);
-		} else if (jtag_verify_capture_ir)
-		{
-			(*last_cmd)->cmd.scan->fields[i].in_handler = fields[i].in_handler;
-			(*last_cmd)->cmd.scan->fields[i].in_handler_priv = fields[i].in_handler_priv;
-			(*last_cmd)->cmd.scan->fields[i].in_check_value = device->expected; 
-			(*last_cmd)->cmd.scan->fields[i].in_check_mask = device->expected_mask;
-		}
+		(*last_cmd)->cmd.scan->fields[i].in_handler = NULL;	/* disable verification by default */
 
 		/* search the list */
 		for (j = 0; j < num_fields; j++)
@@ -444,6 +435,20 @@ int jtag_add_ir_scan(int num_fields, scan_field_t *fields, enum tap_state state,
 				found = 1;
 				(*last_cmd)->cmd.scan->fields[i].out_value = buf_cpy(fields[j].out_value, cmd_queue_alloc(CEIL(scan_size, 8)), scan_size);
 				(*last_cmd)->cmd.scan->fields[i].out_mask = buf_cpy(fields[j].out_mask, cmd_queue_alloc(CEIL(scan_size, 8)), scan_size);
+			
+				if (jtag_verify_capture_ir)
+				{
+					if (fields[j].in_handler==NULL)
+					{
+						jtag_set_check_value((*last_cmd)->cmd.scan->fields+i, device->expected, device->expected_mask, NULL);
+					} else
+					{
+						(*last_cmd)->cmd.scan->fields[i].in_handler = fields[j].in_handler;
+						(*last_cmd)->cmd.scan->fields[i].in_handler_priv = fields[j].in_handler_priv;
+						(*last_cmd)->cmd.scan->fields[i].in_check_value = device->expected; 
+						(*last_cmd)->cmd.scan->fields[i].in_check_mask = device->expected_mask;
+					}
+				}
 				
 				device->bypass = 0;
 				break;
-- 
GitLab