pipes: add documentation for pipes
[fw/openocd] / src / pld / virtex2.c
index 93509dec1cd8ec06eb3a8fd4cac132409d8dab7c..f4657bcf48670636f74cf25b5233436592b86d52 100644 (file)
@@ -36,13 +36,14 @@ static int virtex2_set_instr(struct jtag_tap *tap, uint32_t new_instr)
                struct scan_field field;
 
                field.num_bits = tap->ir_length;
-               field.out_value = calloc(DIV_ROUND_UP(field.num_bits, 8), 1);
-               buf_set_u32(field.out_value, 0, field.num_bits, new_instr);
+               void * t = calloc(DIV_ROUND_UP(field.num_bits, 8), 1);
+               field.out_value = t;
+               buf_set_u32(t, 0, field.num_bits, new_instr);
                field.in_value = NULL;
 
                jtag_add_ir_scan(tap, &field, TAP_IDLE);
 
-               free(field.out_value);
+               free(t);
        }
 
        return ERROR_OK;
@@ -77,7 +78,7 @@ static int virtex2_send_32(struct pld_device *pld_device,
 static __inline__ void virtexflip32(jtag_callback_data_t arg)
 {
   uint8_t *in = (uint8_t *)arg;
-       *((uint32_t *)in) = flip_u32(le_to_h_u32(in), 32);
+       *((uint32_t *)arg) = flip_u32(le_to_h_u32(in), 32);
 }
 
 static int virtex2_receive_32(struct pld_device *pld_device,
@@ -141,7 +142,6 @@ static int virtex2_load(struct pld_device *pld_device, const char *filename)
        if ((retval = xilinx_read_bit_file(&bit_file, filename)) != ERROR_OK)
                return retval;
 
-       jtag_set_end_state(TAP_IDLE);
        virtex2_set_instr(virtex2_info->tap, 0xb); /* JPROG_B */
        jtag_execute_queue();
        jtag_add_sleep(1000);
@@ -160,7 +160,6 @@ static int virtex2_load(struct pld_device *pld_device, const char *filename)
 
        jtag_add_tlr();
 
-       jtag_set_end_state(TAP_IDLE);
        virtex2_set_instr(virtex2_info->tap, 0xc); /* JSTART */
        jtag_add_runtest(13, TAP_IDLE);
        virtex2_set_instr(virtex2_info->tap, 0x3f); /* BYPASS */