adi_v5_swd: invalidate dap->select during (re)connect
authorTomas Vanek <vanekt@fbl.cz>
Sat, 9 Jan 2016 17:56:23 +0000 (18:56 +0100)
committerAndreas Fritiofson <andreas.fritiofson@gmail.com>
Wed, 10 Feb 2016 20:39:38 +0000 (20:39 +0000)
Commit 830d0c55c0920606366a15560d1945f1e1942744 introduced
a regression in error recovery after reconnect:
If first SWD queue run in dap_dp_init() fails, DP_SELECT
does not get reset.

Change-Id: I947e2afe9933e4645a6141ece7816af8e6082cf2
Signed-off-by: Tomas Vanek <vanekt@fbl.cz>
Reviewed-on: http://openocd.zylin.com/3194
Tested-by: jenkins
Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
src/target/adi_v5_swd.c

index 6990a8b9c65e1f225f43769673d8864f747ea8ba..f7a199c56c4735d0ddd4e5202c8df9bcff3365ad 100644 (file)
@@ -123,6 +123,8 @@ static int swd_connect(struct adiv5_dap *dap)
 
        status = swd_run_inner(dap);
 
+       dap->select = DP_SELECT_INVALID;
+
        if (status == ERROR_OK) {
                LOG_INFO("SWD IDCODE %#8.8" PRIx32, idcode);
                dap->do_reconnect = false;