• David Brownell's avatar
    [PATCH] ehci-hcd, handle async_next register correctly · d8808735
    David Brownell authored
    This patch should improve behavior of the EHCI driver,
    particularly on VIA hardware.
    
      - A more careful reading of the EHCI spec turns up
        requirements not to change this register's value
        while the async schedule is enabled.  That means
        in effect that it must never point to a QH that'd
        get unlinked ... driver now uses a dedicated QH.
    
      - Disables async schedule a bit faster:  after 50msec
        idle, not 330msec idle.
    
      - Streamline the "can't init memory" failure path.
    
      - Start to use the dev_dbg()/dev_info()/... macros
        in more places.
    
    This version acts a bunch happier than the previous
    version, removing some failure modes I could never
    quite convince myself were hardware (they weren't!)
    I suspect it'll remove a lot of the "it hangs" failures
    that some folk have reported (mostly on 2.4 though).
    d8808735
ehci-hcd.c 27.5 KB