summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorjoe <joe@FreeBSD.org>2002-04-01 20:01:41 +0000
committerjoe <joe@FreeBSD.org>2002-04-01 20:01:41 +0000
commit610d83202b0734e7820c6ded95e13866a67011d8 (patch)
treef73fbfaf35b9efccdf0855732f719054dad7f353 /sys
parente6e7f9944f4cf9f3c626d5d36195f9f71d8efa39 (diff)
downloadFreeBSD-src-610d83202b0734e7820c6ded95e13866a67011d8.zip
FreeBSD-src-610d83202b0734e7820c6ded95e13866a67011d8.tar.gz
MFNetBSD: ohci.c rev 1.94, uhci.c rev 1.126
date: 2000/11/10 14:11:49; author: augustss; Update frlengths after a isoc transfer. Suggested by Yuri <yuri@tsoft.com>
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/usb/ohci.c3
-rw-r--r--sys/dev/usb/uhci.c8
2 files changed, 7 insertions, 4 deletions
diff --git a/sys/dev/usb/ohci.c b/sys/dev/usb/ohci.c
index 3b89289..5818e7e 100644
--- a/sys/dev/usb/ohci.c
+++ b/sys/dev/usb/ohci.c
@@ -1,4 +1,4 @@
-/* $NetBSD: usb/ohci.c,v 1.92 2000/08/08 19:51:46 tv Exp $ */
+/* $NetBSD: ohci.c,v 1.94 2000/11/10 14:11:49 augustss Exp $ */
/* $FreeBSD$ */
/*
@@ -1318,6 +1318,7 @@ ohci_softintr(struct usbd_bus *bus)
(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 --git a/sys/dev/usb/uhci.c b/sys/dev/usb/uhci.c
index 84ccb1d..474d1db 100644
--- a/sys/dev/usb/uhci.c
+++ b/sys/dev/usb/uhci.c
@@ -1,4 +1,4 @@
-/* $NetBSD: uhci.c,v 1.120 2000/06/01 15:51:26 augustss Exp $ */
+/* $NetBSD: uhci.c,v 1.126 2000/11/10 14:11:49 augustss Exp $ */
/* $FreeBSD$ */
/*
@@ -1350,7 +1350,7 @@ uhci_idone(uhci_intr_info_t *ii)
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));
@@ -1368,7 +1368,9 @@ uhci_idone(uhci_intr_info_t *ii)
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;
OpenPOWER on IntegriCloud