ftdi: flush mpsse queue after a level change on reset pins
authorAntonio Borneo <borneo.antonio@gmail.com>
Mon, 3 Feb 2020 15:48:40 +0000 (16:48 +0100)
committerAntonio Borneo <borneo.antonio@gmail.com>
Thu, 12 Mar 2020 10:05:09 +0000 (10:05 +0000)
The function ftdi_set_signal() does not propagate the pin change
until next call to mpsse_flush(). Current code does not toggles
immediately the reset pins if polling is turned off.

Call mpsse_flush() at the end of ftdi_reset().
While there, remove the duplicated LOG message.

Change-Id: I79eacfe4fc32b5cdf2dc1b78f3660d96988466bc
Fixes: 8850eb8f2c51 ("swd: get rid of jtag queue to assert/deassert srst")
Reported-by: Leonard Crestez <leonard.crestez@nxp.com>
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-on: http://openocd.zylin.com/5431
Tested-by: jenkins
Reviewed-by: Leonard Crestez <leonard.crestez@nxp.com>
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
src/jtag/drivers/ftdi.c

index a9cdbbe1e93933f368b029b23b325be1116062d8..121cb469f283dca6160dcadfd42af4d5de4e73bb 100644 (file)
@@ -550,8 +550,7 @@ static int ftdi_reset(int trst, int srst)
                        ftdi_set_signal(sig_nsrst, 'z');
        }
 
-       LOG_DEBUG_IO("trst: %i, srst: %i", trst, srst);
-       return ERROR_OK;
+       return mpsse_flush(mpsse_ctx);
 }
 
 static void ftdi_execute_sleep(struct jtag_command *cmd)