Source-Changes-HG archive

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

[src/trunk]: src/sys/dev/usb Use vertical nscheduling for bulk traffic. It i...



details:   https://anonhg.NetBSD.org/src/rev/93f1d020c42c
branches:  trunk
changeset: 478989:93f1d020c42c
user:      augustss <augustss%NetBSD.org@localhost>
date:      Wed Dec 01 00:42:05 1999 +0000

description:
Use vertical nscheduling for bulk traffic.  It improves bulk thruput a lot.
>From FreeBSD and Nick Hibma.

diffstat:

 sys/dev/usb/uhci.c |  11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

diffs (39 lines):

diff -r 5dd5b24a2316 -r 93f1d020c42c sys/dev/usb/uhci.c
--- a/sys/dev/usb/uhci.c        Wed Dec 01 00:40:53 1999 +0000
+++ b/sys/dev/usb/uhci.c        Wed Dec 01 00:42:05 1999 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: uhci.c,v 1.68 1999/11/23 20:36:10 augustss Exp $       */
+/*     $NetBSD: uhci.c,v 1.69 1999/12/01 00:42:05 augustss Exp $       */
 /*     $FreeBSD: src/sys/dev/usb/uhci.c,v 1.33 1999/11/17 22:33:41 n_hibma Exp $       */
 
 /*
@@ -1401,7 +1401,10 @@
                        return (USBD_NOMEM);
                }
                p->link.std = lastp;
-               p->td.td_link = LE(lastlink);
+               if (lastlink == UHCI_PTR_T)
+                       p->td.td_link = LE(lastlink);
+               else
+                       p->td.td_link = LE(lastlink|UHCI_PTR_VF);
                lastp = p;
                lastlink = p->physaddr;
                p->td.td_status = LE(status);
@@ -1846,7 +1849,7 @@
                        return (err);
                next = data;
                dataend->link.std = stat;
-               dataend->td.td_link = LE(stat->physaddr);
+               dataend->td.td_link = LE(stat->physaddr | UHCI_PTR_VF);
        } else {
                next = stat;
        }
@@ -1855,7 +1858,7 @@
        memcpy(KERNADDR(&upipe->u.ctl.reqdma), req, sizeof *req);
 
        setup->link.std = next;
-       setup->td.td_link = LE(next->physaddr);
+       setup->td.td_link = LE(next->physaddr | UHCI_PTR_VF);
        setup->td.td_status = LE(UHCI_TD_SET_ERRCNT(3) | ls | UHCI_TD_ACTIVE);
        setup->td.td_token = LE(UHCI_TD_SETUP(sizeof *req, endpt, addr));
        setup->td.td_buffer = LE(DMAADDR(&upipe->u.ctl.reqdma));



Home | Main Index | Thread Index | Old Index