Skip to content

Commit

Permalink
target/adi_v5_swd: move setting of do_reconnect one level up
Browse files Browse the repository at this point in the history
Move setting of do_reconnect flag from swd_run_inner()
to swd_run(). Reconnect is not used at the inner level
and the flag had to be cleared after swd_run_inner()
to prevent recursion.

Signed-off-by: Tomas Vanek <vanekt@fbl.cz>
Change-Id: Ib1de80bbdf10d1cbfb1dd351c6a5658e50d12af2
Reviewed-on: https://review.openocd.org/c/openocd/+/8155
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Tested-by: jenkins
  • Loading branch information
tom-van authored and borneoa committed Mar 24, 2024
1 parent c02cf94 commit a35e254
Showing 1 changed file with 10 additions and 12 deletions.
22 changes: 10 additions & 12 deletions src/target/adi_v5_swd.c
Expand Up @@ -84,16 +84,8 @@ static void swd_clear_sticky_errors(struct adiv5_dap *dap)
static int swd_run_inner(struct adiv5_dap *dap)
{
const struct swd_driver *swd = adiv5_dap_swd_driver(dap);
int retval;

retval = swd->run();

if (retval != ERROR_OK) {
/* fault response */
dap->do_reconnect = true;
}

return retval;
return swd->run();
}

static inline int check_sync(struct adiv5_dap *dap)
Expand Down Expand Up @@ -288,15 +280,15 @@ static int swd_multidrop_select(struct adiv5_dap *dap)
swd_multidrop_selected_dap = NULL;
if (retry > 3) {
LOG_ERROR("Failed to select multidrop %s", adiv5_dap_name(dap));
dap->do_reconnect = true;
return retval;
}

LOG_DEBUG("Failed to select multidrop %s, retrying...",
adiv5_dap_name(dap));
/* we going to retry localy, do not ask for full reconnect */
dap->do_reconnect = false;
}

dap->do_reconnect = false;
return retval;
}

Expand Down Expand Up @@ -635,7 +627,13 @@ static int swd_run(struct adiv5_dap *dap)

swd_finish_read(dap);

return swd_run_inner(dap);
retval = swd_run_inner(dap);
if (retval != ERROR_OK) {
/* fault response */
dap->do_reconnect = true;
}

return retval;
}

/** Put the SWJ-DP back to JTAG mode */
Expand Down

0 comments on commit a35e254

Please sign in to comment.