X-Git-Url: https://review.openocd.org/gitweb?a=blobdiff_plain;f=src%2Fjtag%2Fzy1000%2Fzy1000.c;h=22193abd2c74afe84890104e830f1eb27d860220;hb=4668bd264cfe64c3e3ddd0f75cb5bf2e5e85f717;hp=7a3a0f2eacc416a52ca016205b54d13afa21e658;hpb=e3f3f60a02abfd836c555e84b997de778177bc83;p=openocd.git diff --git a/src/jtag/zy1000/zy1000.c b/src/jtag/zy1000/zy1000.c index 7a3a0f2eac..22193abd2c 100644 --- a/src/jtag/zy1000/zy1000.c +++ b/src/jtag/zy1000/zy1000.c @@ -283,7 +283,7 @@ int zy1000_speed(int speed) { LOG_USER("valid ZY1000 jtag_speed=[8190,2]. With divisor is %dkHz / even values between 8190-2, i.e. min %dHz, max %dMHz", ZYLIN_KHZ, (ZYLIN_KHZ * 1000) / 8190, ZYLIN_KHZ / (2 * 1000)); - return ERROR_INVALID_ARGUMENTS; + return ERROR_COMMAND_SYNTAX_ERROR; } int khz; @@ -325,7 +325,7 @@ COMMAND_HANDLER(handle_power_command) LOG_INFO("Target power %s", savePower ? "on" : "off"); break; default: - return ERROR_INVALID_ARGUMENTS; + return ERROR_COMMAND_SYNTAX_ERROR; } return ERROR_OK; @@ -1296,6 +1296,15 @@ void zy1000_jtag_add_callback4(jtag_callback_t callback, jtag_callback_data_t da callbackqueue[callbackqueue_pos].data2 = data2; callbackqueue[callbackqueue_pos].data3 = data3; callbackqueue_pos++; + + /* KLUDGE! + * make callbacks synchronous for now as minidriver requires callback + * to be synchronous. + * + * We can get away with making read and writes asynchronous so we + * don't completely kill performance. + */ + zy1000_flush_callbackqueue(); } static int zy1000_jtag_convert_to_callback4(jtag_callback_data_t data0, jtag_callback_data_t data1, jtag_callback_data_t data2, jtag_callback_data_t data3) @@ -1342,6 +1351,9 @@ static void writeShiftValue(uint8_t *data, int bits) readqueue[readqueue_pos].dest = data; readqueue[readqueue_pos].bits = bits; readqueue_pos++; + + /* KLUDGE!!! minidriver requires readqueue to be synchronous */ + zy1000_flush_readqueue(); } #else