Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/dev/usb Wait 1ms first. Existing Intel xHCI requies 1ms ...



details:   https://anonhg.NetBSD.org/src/rev/bbedac3aa815
branches:  trunk
changeset: 827697:bbedac3aa815
user:      msaitoh <msaitoh%NetBSD.org@localhost>
date:      Thu Nov 09 10:03:46 2017 +0000

description:
Wait 1ms first. Existing Intel xHCI requies 1ms delay to prevent system hang
(Errata).

XXX pullup-[78]

diffstat:

 sys/dev/usb/xhci.c |  10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diffs (34 lines):

diff -r 0179cfee1aa2 -r bbedac3aa815 sys/dev/usb/xhci.c
--- a/sys/dev/usb/xhci.c        Thu Nov 09 09:33:28 2017 +0000
+++ b/sys/dev/usb/xhci.c        Thu Nov 09 10:03:46 2017 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: xhci.c,v 1.75 2017/10/28 00:37:13 pgoyette Exp $       */
+/*     $NetBSD: xhci.c,v 1.76 2017/11/09 10:03:46 msaitoh Exp $        */
 
 /*
  * Copyright (c) 2013 Jonathan A. Kollasch
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: xhci.c,v 1.75 2017/10/28 00:37:13 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: xhci.c,v 1.76 2017/11/09 10:03:46 msaitoh Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_usb.h"
@@ -689,10 +689,14 @@
        usbcmd = XHCI_CMD_HCRST;
        xhci_op_write_4(sc, XHCI_USBCMD, usbcmd);
        for (i = 0; i < XHCI_WAIT_HCRST; i++) {
+               /*
+                * Wait 1ms first. Existing Intel xHCI requies 1ms delay to
+                * prevent system hang (Errata).
+                */
+               usb_delay_ms(&sc->sc_bus, 1);
                usbcmd = xhci_op_read_4(sc, XHCI_USBCMD);
                if ((usbcmd & XHCI_CMD_HCRST) == 0)
                        break;
-               usb_delay_ms(&sc->sc_bus, 1);
        }
        if (i >= XHCI_WAIT_HCRST) {
                aprint_error_dev(sc->sc_dev, "host controller reset timeout\n");



Home | Main Index | Thread Index | Old Index