Source-Changes-HG archive

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

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



details:   https://anonhg.NetBSD.org/src/rev/3c95a03103f2
branches:  netbsd-7
changeset: 798774:3c95a03103f2
user:      martin <martin%NetBSD.org@localhost>
date:      Fri Jan 02 22:44:34 2015 +0000

description:
Pull up following revision(s) (requested by skrll in ticket #372):
        sys/dev/usb/xhcireg.h: revision 1.2
        sys/dev/usb/xhci.c: revision 1.28
kern/49391: Fixes to XHCI driver command ring and status TRB
CRCR needs 64byte aligned address
Use usb_allocmem instead of usb_allocmem_flags(..., 0)
Correct status stage TRB in xhci_device_ctrl_start - direction logic was
wrong.
Correct a typo in a comment

diffstat:

 sys/dev/usb/xhci.c    |  12 ++++++------
 sys/dev/usb/xhcireg.h |   4 ++--
 2 files changed, 8 insertions(+), 8 deletions(-)

diffs (66 lines):

diff -r 47b0e804d279 -r 3c95a03103f2 sys/dev/usb/xhci.c
--- a/sys/dev/usb/xhci.c        Fri Jan 02 20:59:14 2015 +0000
+++ b/sys/dev/usb/xhci.c        Fri Jan 02 22:44:34 2015 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: xhci.c,v 1.23.2.2 2014/08/13 21:47:18 riz Exp $        */
+/*     $NetBSD: xhci.c,v 1.23.2.3 2015/01/02 22:44:34 martin Exp $     */
 
 /*
  * Copyright (c) 2013 Jonathan A. Kollasch
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: xhci.c,v 1.23.2.2 2014/08/13 21:47:18 riz Exp $");
+__KERNEL_RCSID(0, "$NetBSD: xhci.c,v 1.23.2.3 2015/01/02 22:44:34 martin Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -1338,7 +1338,7 @@
 
        DPRINTF(("%s\n", __func__));
 
-       err = usb_allocmem_flags(&sc->sc_bus, size, 0, dma, 0);
+       err = usb_allocmem(&sc->sc_bus, size, 0, dma);
 #if 0
        if (err == USBD_NOMEM)
                err = usb_reserve_allocm(&sc->sc_dma_reserve, dma, size);
@@ -2433,7 +2433,7 @@
        xfer->hcpriv = NULL;
 }
 
-/* root hub intrerrupt */
+/* root hub interrupt */
 
 static usbd_status
 xhci_root_intr_transfer(usbd_xfer_handle xfer)
@@ -2589,9 +2589,9 @@
 
 no_data:
        parameter = 0;
-       status = XHCI_TRB_2_IRQ_SET(0) | XHCI_TRB_2_TDSZ_SET(1);
+       status = XHCI_TRB_2_IRQ_SET(0);
        /* the status stage has inverted direction */
-       control = (isread ? 0 : XHCI_TRB_3_DIR_IN) |
+       control = ((isread && (len > 0)) ? 0 : XHCI_TRB_3_DIR_IN) |
            XHCI_TRB_3_TYPE_SET(XHCI_TRB_TYPE_STATUS_STAGE) |
            XHCI_TRB_3_CHAIN_BIT | XHCI_TRB_3_ENT_BIT;
        xhci_trb_put(&xx->xx_trb[i++], parameter, status, control);
diff -r 47b0e804d279 -r 3c95a03103f2 sys/dev/usb/xhcireg.h
--- a/sys/dev/usb/xhcireg.h     Fri Jan 02 20:59:14 2015 +0000
+++ b/sys/dev/usb/xhcireg.h     Fri Jan 02 22:44:34 2015 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: xhcireg.h,v 1.1 2013/09/14 00:40:31 jakllsch Exp $ */
+/* $NetBSD: xhcireg.h,v 1.1.10.1 2015/01/02 22:44:34 martin Exp $ */
 /* $FreeBSD$ */
 
 /*-
@@ -212,7 +212,7 @@
 #define XHCI_STREAM_CONTEXT_ALIGN 16
 #define XHCI_STREAM_ARRAY_ALIGN 16
 #define XHCI_TRANSFER_RING_SEGMENTS_ALIGN 16
-#define XHCI_COMMAND_RING_SEGMENTS_ALIGN 16
+#define XHCI_COMMAND_RING_SEGMENTS_ALIGN 64
 #define XHCI_EVENT_RING_SEGMENTS_ALIGN 64
 #define XHCI_EVENT_RING_SEGMENT_TABLE_ALIGN 64
 #define XHCI_SCRATCHPAD_BUFFER_ARRAY_ALIGN 64



Home | Main Index | Thread Index | Old Index