Source-Changes-HG archive

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

[src/netbsd-8]: src/sys/dev/usb Pull up following revision(s) (requested by m...



details:   https://anonhg.NetBSD.org/src/rev/01e3d2757f89
branches:  netbsd-8
changeset: 852542:01e3d2757f89
user:      martin <martin%NetBSD.org@localhost>
date:      Tue Sep 17 18:53:52 2019 +0000

description:
Pull up following revision(s) (requested by mrg in ticket #1377):

        sys/dev/usb/xhci.c: revision 1.113
        sys/dev/usb/xhci.c: revision 1.109

match xhci version 3.10.  allows properly finding all the USB
busses on new ryzen 3 based systems.

unfortunately, the USB busses are still non-functional.

 -

fix ryzen usb issue: we set TD size to '1', where has xhci spec 4.11.2.4
says final TRB for a TD should have this set to '0'.  since we currently
only generate sinel TRB TDs, set this to 0.

XXX: pullup-all
from sc.dying

diffstat:

 sys/dev/usb/xhci.c |  13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)

diffs (62 lines):

diff -r bb9a33ff4af0 -r 01e3d2757f89 sys/dev/usb/xhci.c
--- a/sys/dev/usb/xhci.c        Tue Sep 17 18:50:04 2019 +0000
+++ b/sys/dev/usb/xhci.c        Tue Sep 17 18:53:52 2019 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: xhci.c,v 1.72.2.10 2019/01/04 14:55:40 martin Exp $    */
+/*     $NetBSD: xhci.c,v 1.72.2.11 2019/09/17 18:53:52 martin Exp $    */
 
 /*
  * Copyright (c) 2013 Jonathan A. Kollasch
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: xhci.c,v 1.72.2.10 2019/01/04 14:55:40 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: xhci.c,v 1.72.2.11 2019/09/17 18:53:52 martin Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_usb.h"
@@ -755,6 +755,8 @@
 static void
 xhci_id_protocols(struct xhci_softc *sc, bus_size_t ecp)
 {
+       XHCIHIST_FUNC(); XHCIHIST_CALLED();
+
        /* XXX Cache this lot */
 
        const uint32_t w0 = xhci_read_4(sc, ecp);
@@ -778,6 +780,7 @@
        case 0x0200:
        case 0x0300:
        case 0x0301:
+       case 0x0310:
                aprint_debug_dev(sc->sc_dev, " %s ports %d - %d\n",
                    major == 3 ? "ss" : "hs", cpo, cpo + cpc -1);
                break;
@@ -3832,7 +3835,7 @@
                parameter = DMAADDR(dma, 0);
                KASSERTMSG(len <= 0x10000, "len %d", len);
                status = XHCI_TRB_2_IRQ_SET(0) |
-                   XHCI_TRB_2_TDSZ_SET(1) |
+                   XHCI_TRB_2_TDSZ_SET(0) |
                    XHCI_TRB_2_BYTES_SET(len);
                control = (isread ? XHCI_TRB_3_DIR_IN : 0) |
                    XHCI_TRB_3_TYPE_SET(XHCI_TRB_TYPE_DATA_STAGE) |
@@ -3963,7 +3966,7 @@
         */
        KASSERTMSG(len <= 0x10000, "len %d", len);
        status = XHCI_TRB_2_IRQ_SET(0) |
-           XHCI_TRB_2_TDSZ_SET(1) |
+           XHCI_TRB_2_TDSZ_SET(0) |
            XHCI_TRB_2_BYTES_SET(len);
        control = XHCI_TRB_3_TYPE_SET(XHCI_TRB_TYPE_NORMAL) |
            (usbd_xfer_isread(xfer) ? XHCI_TRB_3_ISP_BIT : 0) |
@@ -4075,7 +4078,7 @@
        parameter = DMAADDR(dma, 0);
        KASSERTMSG(len <= 0x10000, "len %d", len);
        status = XHCI_TRB_2_IRQ_SET(0) |
-           XHCI_TRB_2_TDSZ_SET(1) |
+           XHCI_TRB_2_TDSZ_SET(0) |
            XHCI_TRB_2_BYTES_SET(len);
        control = XHCI_TRB_3_TYPE_SET(XHCI_TRB_TYPE_NORMAL) |
            (usbd_xfer_isread(xfer) ? XHCI_TRB_3_ISP_BIT : 0) |



Home | Main Index | Thread Index | Old Index