Re: [PATCH] USB: EHCI: fix command register configuration lost problem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, May 19, 2012 at 11:11:19PM +0800, Ming Lei wrote:
> The 3d9545cc375d117554a9b35dfddadf9189c62775(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: Richard Zhao <richard.zhao@xxxxxxxxxxxxx>
> Cc: Chen Peter-B29397 <B29397@xxxxxxxxxxxxx>
> Cc: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>
> Cc: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
> Cc: Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx>
> Signed-off-by: Ming Lei <ming.lei@xxxxxxxxxxxxx>
Tested-by: Richard Zhao <richard.zhao@xxxxxxxxxxxxx>
> ---
>  drivers/usb/host/ehci-hcd.c |    1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
> index f644ba9..5597e60 100644
> --- a/drivers/usb/host/ehci-hcd.c
> +++ b/drivers/usb/host/ehci-hcd.c
> @@ -352,7 +352,6 @@ static int ehci_reset (struct ehci_hcd *ehci)
>  	if (ehci->debug)
>  		dbgp_external_startup();
>  
> -	ehci->command = ehci_readl(ehci, &ehci->regs->command);
>  	ehci->port_c_suspend = ehci->suspended_ports =
>  			ehci->resuming_ports = 0;
>  	return retval;
> -- 
> 1.7.9.5
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux