From nobody@FreeBSD.org  Tue Apr  2 18:33:36 2002
Return-Path: <nobody@FreeBSD.org>
Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21])
	by hub.freebsd.org (Postfix) with ESMTP id 0B24037B416
	for <freebsd-gnats-submit@FreeBSD.org>; Tue,  2 Apr 2002 18:33:36 -0800 (PST)
Received: (from nobody@localhost)
	by freefall.freebsd.org (8.11.6/8.11.6) id g332XZ394590;
	Tue, 2 Apr 2002 18:33:35 -0800 (PST)
	(envelope-from nobody)
Message-Id: <200204030233.g332XZ394590@freefall.freebsd.org>
Date: Tue, 2 Apr 2002 18:33:35 -0800 (PST)
From: Yuri Victorovich <yuri@tsoft.com>
To: freebsd-gnats-submit@FreeBSD.org
Subject: USB isochroneous transfer doesn't report back lengths of short transfers
X-Send-Pr-Version: www-1.0

>Number:         36682
>Category:       kern
>Synopsis:       USB isochroneous transfer doesn't report back lengths of short transfers
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    joe
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue Apr 02 18:40:01 PST 2002
>Closed-Date:    Fri Nov 05 02:39:24 GMT 2004
>Last-Modified:  Fri Nov 05 02:39:24 GMT 2004
>Originator:     Yuri Victorovich
>Release:        STABLE 4.5
>Organization:
Optima Inc
>Environment:
FreeBSD mach1.xxx.com 4.5-STABLE FreeBSD 4.5-STABLE #8: Tue Apr  2 18:48:53 EST 2002     root@sunflower.syrec.org:/usr/src/sys/compile/GENERIC  i386

>Description:
When isochroneous read transfer is submitted with a lot of segments
there are some devices that don't fill the buffers completely and
return short transfer. Driver issuing transfer should always be
interested in actual length of each individual buffer read. Currently
system lacks this capability.

>How-To-Repeat:
N/A
>Fix:
*** uhci.c      Tue Apr  2 18:43:59 2002
--- uhci.c      Tue Apr  2 18:45:02 2002
***************
*** 1104,1109 ****
--- 1104,1110 ----
                                n = 0;
                        status = LE(std->td.td_status);
                        actlen += UHCI_TD_GET_ACTLEN(status);
+                       xfer->frlengths[i] = UHCI_TD_GET_ACTLEN(status);
                }
                upipe->u.iso.inuse -= nframes;
                xfer->actlen = actlen;

>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->patched 
State-Changed-By: iedowse 
State-Changed-When: Sun Dec 8 13:33:06 PST 2002 
State-Changed-Why:  

This was fixed in -CURRENT by revision 1.93 of uhci.c, but it has 
not yet been merged into -STABLE. 


Responsible-Changed-From-To: freebsd-bugs->joe 
Responsible-Changed-By: iedowse 
Responsible-Changed-When: Sun Dec 8 13:33:06 PST 2002 
Responsible-Changed-Why:  

Over to Joe, who fixed this in -CURRENT. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=36682 
State-Changed-From-To: patched->closed 
State-Changed-By: iedowse 
State-Changed-When: Fri Nov 5 02:34:39 GMT 2004 
State-Changed-Why:  

This was MFC'd before 4.10 release. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=36682 
>Unformatted:
