drivers: cmsis-dap: fix connection in JTAG mode
Commitbscan_tunnel5aceec2412
("drivers: cmsis-dap: pull up common connect code") breaks the driver and it cannot connect anymore in JTAG mode. The issue is caused in cmsis_dap_init() by anticipating the call to cmsis_dap_usb_open(), which then sets cmsis_dap_handle and makes the following test to always fail. Actually the original code was quite tricky: if (swd_mode) do something that also sets cmsis_dap_handle; if (cmsis_dap_handle == NULL) do something for !swd_mode; Convert the sequence of tricky "if"s in a single "if-then-else" to handle clearly the cases swd_mode and !swd_mode. Change-Id: I359a23bf26a3edc2461f4352daa0be83e78868f7 Fixes:5aceec2412
("drivers: cmsis-dap: pull up common connect code") Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: http://openocd.zylin.com/4697 Reviewed-by: Tomas Vanek <vanekt@fbl.cz> Tested-by: jenkins
parent
76ee93a81d
commit
06589d2de4
|
@ -895,9 +895,7 @@ static int cmsis_dap_init(void)
|
|||
retval = cmsis_dap_swd_open();
|
||||
if (retval != ERROR_OK)
|
||||
return retval;
|
||||
}
|
||||
|
||||
if (cmsis_dap_handle == NULL) {
|
||||
} else {
|
||||
/* Connect in JTAG mode */
|
||||
if (!(cmsis_dap_handle->caps & INFO_CAPS_JTAG)) {
|
||||
LOG_ERROR("CMSIS-DAP: JTAG not supported");
|
||||
|
|
Loading…
Reference in New Issue