]> git.sur5r.net Git - openocd/commitdiff
ftd2xx: handle FT_GetLatencyTimer bug in v1.04
authorSpencer Oliver <ntfreak@users.sourceforge.net>
Tue, 12 Jul 2011 14:51:18 +0000 (15:51 +0100)
committerSpencer Oliver <ntfreak@users.sourceforge.net>
Tue, 12 Jul 2011 14:51:18 +0000 (15:51 +0100)
Signed-off-by: Spencer Oliver <ntfreak@users.sourceforge.net>
src/jtag/drivers/ft2232.c

index 2b64e8762161b07e5bc2deffcde26271569f93bd..3168f990100901dd638b61c86944ee670e2a4434 100644 (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)
        {
+               /* 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
        {