summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhathach <[email protected]>2023-08-15 00:09:31 +0700
committerhathach <[email protected]>2023-08-16 11:12:00 +0700
commitb3c7fe1023d14d1e07eb21ca9a61438bff49a788 (patch)
tree719256c30900123fec85cf19ec49c5e8dc856918 /src
parent7537985c080e439f6f97a021ce49f5ef48979c78 (diff)
clear qhd halted bit if not caused by STALL protocol, allow for next transfer
Diffstat (limited to 'src')
-rw-r--r--src/portable/ehci/ehci.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/portable/ehci/ehci.c b/src/portable/ehci/ehci.c
index 79811985c..c5036b5a3 100644
--- a/src/portable/ehci/ehci.c
+++ b/src/portable/ehci/ehci.c
@@ -579,6 +579,7 @@ void qhd_xfer_complete_isr(ehci_qhd_t * qhd) {
if (qtd_overlay->xact_err || qtd_overlay->err_count == 0 || qtd_overlay->buffer_err || qtd_overlay->babble_err) {
// Error count = 0 often occurs when device disconnected, or other bus-related error
xfer_result = XFER_RESULT_FAILED;
+ qtd_overlay->halted = false; // clear halted bit if it is not caused by STALL
TU_LOG3(" QHD xfer err count: %d\n", qtd_overlay->err_count);
// TU_BREAKPOINT(); // TODO skip unplugged device
}else {