• David Brownell's avatar
    [PATCH] ehci, qtd submit and completions · 30a03849
    David Brownell authored
    This ought to address a number of the problems with the
    recent "dummy td" update as well as some older ones:
    
        - Slims down the qh_append_tds() to remove two pairs
          of "should be duplicate" logic so that
            * qh_make() only creates and initializes;
            * qh_append_tds() calls it earlier;
            * always appends with dummy, no routine qh updates.
    
        - Reworked qh_completions() ... simpler, better.
           * two notable FIXMEs gone, and a bug related to
             how they interacted with scatterlist i/o
           * fixed bugs (including one oops) exposed by
             using dummies more.
    
    Passes basic testing:  most 'usbtest' cases, usb2 hub
    with keyboard and CF adapter, storage enumeration.
    So it seems less troublesome, though it's still not
    as happy as I've seen it.
    
    However, "testusb -at12" (running 'write unlink' tests)
    still fails for me, and usb-storage gets unhappy when
    it decides (why?  and unsuccessfully) to reset high speed
    devices.  I'm still chasing those problems, which seem
    to come from higher up in the stack.
    30a03849
ehci-q.c 26.9 KB