ftd2xx: handle FT_GetLatencyTimer bug in v1.04

Signed-off-by: Spencer Oliver <ntfreak@users.sourceforge.net>
This commit is contained in:
Spencer Oliver 2011-07-12 15:51:18 +01:00
parent b765688be6
commit 0ea76bc778
1 changed files with 13 additions and 1 deletions

View File

@ -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) 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); 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 else
{ {