Skip to content

Commit

Permalink
drivers/cmsis_dap_usb_bulk: allow waiting for bulk write
Browse files Browse the repository at this point in the history
No driver directly working with the USB hardware needs additional
time to complete the write op, they always return transfer complete
status immediately after submitting the transfer.

Although there is implemented correct waiting path in cmsis_dap_usb_write()
it was marked by error logs to catch any suspicious behaviour during
debugging of asynchronous libusb transfers.

However there are drivers which need waiting to finish write op:
at least usbipd-win, IP tunnelled USB driver, was reported
to flood the log with the related errors.

Change LOG_ERROR to LOG_DEBUG_IO in the code waiting to finish write op.

Reported-by: Quentis Ghyll <[email protected]>
Signed-off-by: Tomas Vanek <[email protected]>
Change-Id: Iedf2c96d851f22e694efaf13a2d6a2a408cee1ad
Reviewed-on: https://review.openocd.org/c/openocd/+/8640
Tested-by: jenkins
  • Loading branch information
tom-van committed Jan 9, 2025
1 parent 23796ef commit cf115c1
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/jtag/drivers/cmsis_dap_usb_bulk.c
Original file line number Diff line number Diff line change
Expand Up @@ -532,7 +532,7 @@ static int cmsis_dap_usb_write(struct cmsis_dap *dap, int txlen, int timeout_ms)
tr = &dap->bdata->command_transfers[dap->pending_fifo_put_idx];

if (tr->status == CMSIS_DAP_TRANSFER_PENDING) {
LOG_ERROR("busy command USB transfer at %u", dap->pending_fifo_put_idx);
LOG_DEBUG_IO("busy command USB transfer at %u", dap->pending_fifo_put_idx);
struct timeval tv = {
.tv_sec = timeout_ms / 1000,
.tv_usec = timeout_ms % 1000 * 1000
Expand All @@ -547,7 +547,7 @@ static int cmsis_dap_usb_write(struct cmsis_dap *dap, int txlen, int timeout_ms)
tr->status = CMSIS_DAP_TRANSFER_IDLE;
}
if (tr->status == CMSIS_DAP_TRANSFER_COMPLETED) {
LOG_ERROR("USB write: late transfer competed");
LOG_DEBUG_IO("USB write: late transfer competed");
tr->status = CMSIS_DAP_TRANSFER_IDLE;
}
if (tr->status != CMSIS_DAP_TRANSFER_IDLE) {
Expand Down

0 comments on commit cf115c1

Please sign in to comment.