Source-Changes-HG archive

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

[src/trunk]: src/sys/dev/usb fix ryzen usb issue: we set TD size to '1', wher...



details:   https://anonhg.NetBSD.org/src/rev/a5d3c2d717c1
branches:  trunk
changeset: 965243:a5d3c2d717c1
user:      mrg <mrg%NetBSD.org@localhost>
date:      Sat Sep 07 22:56:47 2019 +0000

description:
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 |  10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diffs (45 lines):

diff -r fe85c0cbc23f -r a5d3c2d717c1 sys/dev/usb/xhci.c
--- a/sys/dev/usb/xhci.c        Sat Sep 07 22:20:42 2019 +0000
+++ b/sys/dev/usb/xhci.c        Sat Sep 07 22:56:47 2019 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: xhci.c,v 1.112 2019/09/07 22:20:42 mrg Exp $   */
+/*     $NetBSD: xhci.c,v 1.113 2019/09/07 22:56:47 mrg Exp $   */
 
 /*
  * Copyright (c) 2013 Jonathan A. Kollasch
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: xhci.c,v 1.112 2019/09/07 22:20:42 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: xhci.c,v 1.113 2019/09/07 22:56:47 mrg Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_usb.h"
@@ -3880,7 +3880,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) |
@@ -4010,7 +4010,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) |
@@ -4120,7 +4120,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