Re: [patch 2.6.29] usb: ehci-sched.c: EHCI SITD scheduling bugfix (resend)

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

 



On Tuesday 21 April 2009, Dan Streetman wrote:
> 
> Hopefully this description is ok? ;-)

Yes, much better; thanks.

Acked-by: David Brownell <dbrownell@xxxxxxxxxxxxxxxxxxxxx>


> Without this patch, the driver won't check that the last fully-occupied
> uframe for a new split transaction was vacant beforehand.  This can
> lead to a situation in which the first 188 bytes of a 192-byte
> isochronous transfer are scheduled in the same uframe as an existing
> interrupt transfer.  The resulting schedule looks like this:
> 
>        uframe 0: 188-byte isoc-OUT SSPLIT, 8-byte int-IN SSPLIT
>        uframe 1: 4-byte isoc-OUT SSPLIT
> 
> The SSPLITs are intermingled, causing an error in the downstream hub's
> TT.
> 
> If you are having problems with devices or hub ports resetting, or failed 
> interrupt transfers, when you start using a USB audio or video (Isochronous) 
> device, this patch may help.
> 
> 
> Signed-off-by: Dan Streetman <ddstreet@xxxxxxxx>
> Reported-by: Kung James <kong1191@xxxxxxxxx>
> 
> 
> --- a/drivers/usb/host/ehci-sched.c	2009-04-17 15:05:02.000000000 -0400
> +++ linux-2.6.30-rc2/drivers/usb/host/ehci-sched.c	2009-04-17 15:05:33.000000000 -0400
> @@ -323,7 +323,7 @@ static int tt_available (
>  		 * already scheduled transactions
>  		 */
>  		if (125 < usecs) {
> -			int ufs = (usecs / 125) - 1;
> +			int ufs = (usecs / 125);
>  			int i;
>  			for (i = uframe; i < (uframe + ufs) && i < 8; i++)
>  				if (0 < tt_usecs[i]) {
> 
> 



--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux