• M
    USB: EHCI: fix command register configuration lost problem · 1c01f1d9
    Ming Lei 提交于
    The 3d9545cc(EHCI: maintain the
    ehci->command value properly) introducs one command register
    configuration lost problem by the below line in ehci_reset:
    
    	ehci->command = ehci_readl(ehci, &ehci->regs->command);
    
    After writting RESET into command register, it is restored to
    its default value per EHCI spec[1], so the previous configuration
    will be lost, and may introduce some problems reported recently:
    	- imx51 Babbage board detect usb hub failed[2], reported
    	by Richard Zhao.
    	- mouse and keyboard hangs in linux-next found by
    	Dan Carpenter and Greg-KH.
    
    So this patch just removes the line to fix these problems, and
    keep configurating command register consistent as before the commit
    3d9545cc(EHCI: maintain the ehci->command value properly).
    
    [1], 4.1 Host Controller Initialization of EHCI Specification 1.0
    [2], failed dmesg log:
    	usb 1-1: new high-speed USB device number 2 using mxc-ehci
    	hub 1-1:1.0: USB hub found
    	hub 1-1:1.0: 7 ports detected
    	mxc-ehci mxc-ehci.1: fatal error
    	mxc-ehci mxc-ehci.1: HC died; cleaning up
    	mxc-ehci mxc-ehci.1: force halt; handshake f5780344 00004000 00004000 -> -110
    	mxc-ehci mxc-ehci.1: HC died; cleaning up
    	usb 1-1: USB disconnect, device number 2
    Reported-by: NRichard Zhao <richard.zhao@freescale.com>
    Reported-by: NDan Carpenter <dan.carpenter@oracle.com>
    Reported-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Chen Peter-B29397 <B29397@freescale.com>
    Acked-by: NAlan Stern <stern@rowland.harvard.edu>
    Signed-off-by: NMing Lei <ming.lei@canonical.com>
    Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    1c01f1d9
ehci-hcd.c 40.5 KB