From: Spencer Oliver Date: Tue, 12 Jul 2011 14:51:18 +0000 (+0100) Subject: ftd2xx: handle FT_GetLatencyTimer bug in v1.04 X-Git-Tag: v0.5.0~21 X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=commitdiff_plain;h=0ea76bc778a1c5c33bf43e2afbcbbfc819764778 ftd2xx: handle FT_GetLatencyTimer bug in v1.04 Signed-off-by: Spencer Oliver --- diff --git a/src/jtag/drivers/ft2232.c b/src/jtag/drivers/ft2232.c index 2b64e87621..3168f99010 100644 --- a/src/jtag/drivers/ft2232.c +++ b/src/jtag/drivers/ft2232.c @@ -2260,8 +2260,20 @@ static int ft2232_init_ftd2xx(uint16_t vid, uint16_t pid, int more, int* try_mor if ((status = FT_GetLatencyTimer(ftdih, &latency_timer)) != FT_OK) { + /* ftd2xx 1.04 (linux) has a bug when calling FT_GetLatencyTimer + * so ignore errors if using this driver version */ + DWORD dw_version; + + status = FT_GetDriverVersion(ftdih, &dw_version); LOG_ERROR("unable to get latency timer: %" PRIu32, status); - return ERROR_JTAG_INIT_FAILED; + + if ((status == FT_OK) && (dw_version == 0x10004)) { + LOG_ERROR("ftd2xx 1.04 detected - this has known issues " \ + "with FT_GetLatencyTimer, upgrade to a newer version"); + } + else { + return ERROR_JTAG_INIT_FAILED; + } } else {