When detaching devices when we suspend, we need to continue processing
authorkettenis <kettenis@openbsd.org>
Sun, 16 Jul 2023 09:33:18 +0000 (09:33 +0000)
committerkettenis <kettenis@openbsd.org>
Sun, 16 Jul 2023 09:33:18 +0000 (09:33 +0000)
command completion events.  So only return early in xhci_softintr() if
the controller is dead instead of dying.  This fixes USB suspend/resume
in Apple M1/M2.

ok mlarkin@, deraadt@

sys/dev/usb/xhci.c

index 518a569..8b78d5f 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: xhci.c,v 1.128 2023/01/01 21:45:40 kettenis Exp $ */
+/* $OpenBSD: xhci.c,v 1.129 2023/07/16 09:33:18 kettenis Exp $ */
 
 /*
  * Copyright (c) 2014-2015 Martin Pieuchot
@@ -656,7 +656,7 @@ xhci_softintr(void *v)
 {
        struct xhci_softc *sc = v;
 
-       if (sc->sc_bus.dying)
+       if (sc->sc_dead)
                return;
 
        sc->sc_bus.intr_context++;