• Jason Wessel's avatar
    USB: ehci-dbgp: stability improvements and external re-init · 91777826
    Jason Wessel authored
    This patch implements several changes:
    
    1) Improve the capability to debug the dbgp driver
    
       The dbgp_ehci_status() was added in a number of places to report
       the critical ehci registers to diagnose the cause of a failure of
       the ehci-dbgp driver.
    
    2) Capability to survive the host controller initialization
    
       The dbgp_external_startup(), dbgp_not_safe, and dbgp_phys_port were
       added so as to allow the ehci-dbgp to re-initialize after the ehci
       host controller is reset by the standard host controller driver.
       This same routine is common for the early startup or
       re-initialization.
    
       This resulted in the need to move some of the initialization code
       out of the __init section because the ehci driver has the
       possibility to be loaded later on as a kernel module.
    
    3) Stability improvements for device initialization
    
       The device enumeration from 0 to 127 has the possibility to fail
       the first time after a warm reset on some older EHCI debug
       controllers.  The enumeration will be tried up to 3 times to
       account for this failure case.
    
       The dbg_wait_until_complete() was changed to wait up to 250 ms
       before failing which only comes into play during device
       initialization. The maximum delay will never get hit during the
       course of normal operation of the driver, unless the device got
       unplugged or there was a ehci controller failure, in which case the
       dbgp device driver will shut itself down.
    Signed-off-by: default avatarJason Wessel <jason.wessel@windriver.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: dbrownell@users.sourceforge.net
    Cc: Yinghai Lu <yinghai@kernel.org>
    Cc: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    91777826
ehci-dbgp.c 22 KB