Source-Changes-HG archive

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

[src/trunk]: src/sys/dev/usb Update frlengths after a isoc transfer.



details:   https://anonhg.NetBSD.org/src/rev/f09ecc789b61
branches:  trunk
changeset: 499079:f09ecc789b61
user:      augustss <augustss%NetBSD.org@localhost>
date:      Fri Nov 10 14:11:49 2000 +0000

description:
Update frlengths after a isoc transfer.
Suggested by Yuri <yuri%tsoft.com@localhost>

diffstat:

 sys/dev/usb/ohci.c |  3 ++-
 sys/dev/usb/uhci.c |  8 +++++---
 2 files changed, 7 insertions(+), 4 deletions(-)

diffs (46 lines):

diff -r 539f8731742e -r f09ecc789b61 sys/dev/usb/ohci.c
--- a/sys/dev/usb/ohci.c        Fri Nov 10 14:08:32 2000 +0000
+++ b/sys/dev/usb/ohci.c        Fri Nov 10 14:11:49 2000 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: ohci.c,v 1.93 2000/08/17 23:18:56 augustss Exp $       */
+/*     $NetBSD: ohci.c,v 1.94 2000/11/10 14:11:49 augustss Exp $       */
 /*     $FreeBSD: src/sys/dev/usb/ohci.c,v 1.22 1999/11/17 22:33:40 n_hibma Exp $       */
 
 /*
@@ -1285,6 +1285,7 @@
                                (struct ohci_pipe *)xfer->pipe;
                        if (sitd->flags & OHCI_CALL_DONE) {
                                opipe->u.iso.inuse -= xfer->nframes;
+                               /* XXX update frlengths with actual length */
                                /* XXX xfer->actlen = actlen; */
                                xfer->status = USBD_NORMAL_COMPLETION;
                                usb_transfer_complete(xfer);
diff -r 539f8731742e -r f09ecc789b61 sys/dev/usb/uhci.c
--- a/sys/dev/usb/uhci.c        Fri Nov 10 14:08:32 2000 +0000
+++ b/sys/dev/usb/uhci.c        Fri Nov 10 14:11:49 2000 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: uhci.c,v 1.125 2000/09/23 21:00:10 augustss Exp $      */
+/*     $NetBSD: uhci.c,v 1.126 2000/11/10 14:11:49 augustss Exp $      */
 /*     $FreeBSD: src/sys/dev/usb/uhci.c,v 1.33 1999/11/17 22:33:41 n_hibma Exp $       */
 
 /*
@@ -1329,7 +1329,7 @@
        if (xfer->nframes != 0) {
                /* Isoc transfer, do things differently. */
                uhci_soft_td_t **stds = upipe->u.iso.stds;
-               int i, n, nframes;
+               int i, n, nframes, len;
 
                DPRINTFN(5,("uhci_idone: ii=%p isoc ready\n", ii));
 
@@ -1347,7 +1347,9 @@
                        if (++n >= UHCI_VFRAMELIST_COUNT)
                                n = 0;
                        status = le32toh(std->td.td_status);
-                       actlen += UHCI_TD_GET_ACTLEN(status);
+                       len = UHCI_TD_GET_ACTLEN(status);
+                       xfer->frlengths[i] = len;
+                       actlen += len;
                }
                upipe->u.iso.inuse -= nframes;
                xfer->actlen = actlen;



Home | Main Index | Thread Index | Old Index