summaryrefslogtreecommitdiff
path: root/src/portable
diff options
context:
space:
mode:
authorHa Thach <[email protected]>2023-08-16 16:01:16 +0700
committerGitHub <[email protected]>2023-08-16 16:01:16 +0700
commit1fdf29075d4e613eacfa881166015263797db0f6 (patch)
tree0f5244a66dd11060f9c35d49f22ca026d171e29c /src/portable
parent7537985c080e439f6f97a021ce49f5ef48979c78 (diff)
parentf4845e4e6cc2faca4e60cd83959850f27d3f3076 (diff)
Merge pull request #2221 from hathach/ehci-halted-error
EHCI more fixes
Diffstat (limited to 'src/portable')
-rw-r--r--src/portable/ehci/ehci.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/portable/ehci/ehci.c b/src/portable/ehci/ehci.c
index 79811985c..c93c33fc0 100644
--- a/src/portable/ehci/ehci.c
+++ b/src/portable/ehci/ehci.c
@@ -578,7 +578,9 @@ void qhd_xfer_complete_isr(ehci_qhd_t * qhd) {
if ( qtd_overlay->halted ) {
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
+ // clear halted bit if not caused by STALL to allow more transfer
xfer_result = XFER_RESULT_FAILED;
+ qtd_overlay->halted = false;
TU_LOG3(" QHD xfer err count: %d\n", qtd_overlay->err_count);
// TU_BREAKPOINT(); // TODO skip unplugged device
}else {