summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorMarcus Glocker <mglocker@cvs.openbsd.org>2021-01-11 14:41:13 +0000
committerMarcus Glocker <mglocker@cvs.openbsd.org>2021-01-11 14:41:13 +0000
commit0b45d671928cfa27cc1694c5f8e4d14e72b0397a (patch)
tree11e653422750e88fd1dca27465ea697ae4f2c540 /sys/dev
parenta66544942fff5a619b28e54c728499b9c17f4806 (diff)
When an endpoint stalls, we usually try to reset it by calling
usbd_clear_endpoint_stall(), which in turn will call usbd_clear_endpoint_toggle(). It can be a common situation that when this happens, there is still a transfer in the stalled queue being in progress. The ehci(4) clear toggle function is currently doing a panic() in the diagnostic code in this situation, which is a bit of an overkill. The device still can be recovered by detaching/attaching it. Therefore change the panic() in to a printf(). ok mpi@
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/usb/ehci.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/usb/ehci.c b/sys/dev/usb/ehci.c
index 46373810b42..9e1010a7c24 100644
--- a/sys/dev/usb/ehci.c
+++ b/sys/dev/usb/ehci.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ehci.c,v 1.213 2020/11/27 20:41:21 mglocker Exp $ */
+/* $OpenBSD: ehci.c,v 1.214 2021/01/11 14:41:12 mglocker Exp $ */
/* $NetBSD: ehci.c,v 1.66 2004/06/30 03:11:56 mycroft Exp $ */
/*
@@ -1159,7 +1159,7 @@ ehci_device_clear_toggle(struct usbd_pipe *pipe)
#ifdef DIAGNOSTIC
if ((epipe->sqh->qh.qh_qtd.qtd_status & htole32(EHCI_QTD_ACTIVE)) != 0)
- panic("ehci_device_clear_toggle: queue active");
+ printf("%s: queue active\n", __func__);
#endif
epipe->sqh->qh.qh_qtd.qtd_status &= htole32(~EHCI_QTD_TOGGLE_MASK);
}