• David Brownell's avatar
    USB: ehci completes high speed ISO URBs sooner · 79592b72
    David Brownell authored
    This has some bugfixes for the EHCI driver's ISO transfer scanning
    logic.  It was leaving ITDs and SITDs on the schedule too long, for
    a few different reasons, which caused trouble.
    
      (a)	Look at all microframes for high speed transfers, not just
    	the ones we expect to have finished.  This way transfers
    	ending mid-frame will complete without needing another IRQ.
    	This also minimizes bogus scheduling underruns (e.g. EL2NSYNC).
    
      (b)	When we encounter an ISO transfer (either speed, but this
    	hits mostly at full speed) that's not yet been completed,
    	immediately stop scanning; we've caught up to the hardware,
    	no matter what other indications might say.
    
      (c)	Always clean up ITDs (for high speed transfers) when the HC
    	is no longer running.
    
    I'm not sure whether the last one has been observed before, but both
    the others have been reported with "real world" audio and video code.
    Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    79592b72
ehci-sched.c 58.9 KB