• David Brownell's avatar
    [PATCH] USB: EHCI and full-speed ISO-OUT · 03e4f4ae
    David Brownell authored
    This is a minor update to the patch I sent out about a week ago.
    The key change is to use the I/O watchdog while doing ISO streaming.
    Bernd Porr reports that a VT8235 system needs that; it seems like
    IDE activity can interfere with the delivery of USB IRQs.
    
    
    EHCI periodic scheduling updates.
    
     - Initial version of full speed ISO transaction support.  This
       should handle OUT transactions, such as those for usb speakers.
       For now, it's controlled using an EXPERIMENTAL config option:
    
       * I've run into interesting differences in how different USB 2.0
         hub silicon (the transaction translators) handle some older
         audio devices.  Needs more investigation.
    
       * Interrupt transfer scheduling doesn't yet cope well with schedules
         where every slot already has activity.  For now, don't plug in
         devices like hubs, mice, or keyboards while EHCI is streaming.
    
     - Protect freelist for highspeed ITDs, using spinlock.  Could be
       an issue for some drivers.
    
     - Kick in the I/O watchdog timer (5 msec) for periodic transfers.
       In this case, IDE activity on a VT8235 lost the IRQs which should
       have kept the ISO stream active.  Queues shorter than 5 msec are
       not going to work on all USB hosts.
    
     - Simplified the ISO scheduler:  doesn't attempt to re-schedule
       after lossage, or to short-circuit scanning.  (Rescheduling will
       probably come back later ... for now, the "hard" error here is
       highlighting problems that need attention.)
    03e4f4ae
ehci-sched.c 48.5 KB