> -----Original Message-----
> From: Alan Stern [mailto:stern@xxxxxxxxxxxxxxxxxxx]
> Sent: Saturday, March 18, 2017 12:44 AM
> To: Lipengcheng
> Cc: gregkh@xxxxxxxxxxxxxxxxxxx; linux-usb@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> Subject: Re: EHCI
> On Fri, 17 Mar 2017, Lipengcheng wrote:
> > Hi,
> > In the ehci-hub.c,the ehci_handshake(ehci, status_reg, PORT_RESET, 0,
> > 1000) use that the timeout is 1000us. The 1000us timeout can not
> > satisfy all the chips. The EHCI protocol describes:A host controller
> > must terminate the reset and stabilize the state of the port within 2
> > milliseconds of software transitioning this bit from a one to a zero.
> > So I think timeout time is set to 2000us more appropriate. If I set
> > the timeout time is set to 2000us and may it produce side effects?
> That is a long time to wait with interrupts disabled. You probably should release the spinlock and enable interrupts during the handshake.
> Have you seen any errors with the current 1000 us value? If you haven't, there's no reason to change the code.
Yes, I have some error -110(-ETIMEDOUT) with the current 1000us value. When I set the value 2000us, it is ok.
> Alan Stern