diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/jtag/jtag.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/jtag/jtag.c b/src/jtag/jtag.c index a4f5d51d..28eca809 100644 --- a/src/jtag/jtag.c +++ b/src/jtag/jtag.c @@ -592,10 +592,11 @@ void jtag_add_ir_scan(int in_num_fields, scan_field_t *in_fields, tap_state_t st int MINIDRIVER(interface_jtag_add_ir_scan)(int in_num_fields, scan_field_t *in_fields, tap_state_t state) { jtag_tap_t *tap; - int x; int nth_tap; int scan_size = 0; + int num_taps = jtag_NumEnabledTaps(); + /* allocate memory for a new list member */ jtag_command_t * cmd = cmd_queue_alloc(sizeof(jtag_command_t)); @@ -606,9 +607,8 @@ int MINIDRIVER(interface_jtag_add_ir_scan)(int in_num_fields, scan_field_t *in_f /* allocate memory for ir scan command */ cmd->cmd.scan = cmd_queue_alloc(sizeof(scan_command_t)); cmd->cmd.scan->ir_scan = true; - x = jtag_NumEnabledTaps(); - cmd->cmd.scan->num_fields = x; /* one field per device */ - cmd->cmd.scan->fields = cmd_queue_alloc(x * sizeof(scan_field_t)); + cmd->cmd.scan->num_fields = num_taps; /* one field per device */ + cmd->cmd.scan->fields = cmd_queue_alloc(num_taps * sizeof(scan_field_t)); cmd->cmd.scan->end_state = state; nth_tap = -1; @@ -623,7 +623,7 @@ int MINIDRIVER(interface_jtag_add_ir_scan)(int in_num_fields, scan_field_t *in_f } nth_tap++; - assert(nth_tap < x ); + assert(nth_tap < num_taps); scan_size = tap->ir_length; cmd->cmd.scan->fields[nth_tap].tap = tap; @@ -654,7 +654,8 @@ int MINIDRIVER(interface_jtag_add_ir_scan)(int in_num_fields, scan_field_t *in_f /* update device information */ buf_cpy(cmd->cmd.scan->fields[nth_tap].out_value, tap->cur_instr, scan_size); } - assert(nth_tap == (x-1)); + + assert(nth_tap == (num_taps - 1)); return ERROR_OK; } |