Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754706AbcK3PW4 (ORCPT ); Wed, 30 Nov 2016 10:22:56 -0500 Received: from iolanthe.rowland.org ([192.131.102.54]:43848 "HELO iolanthe.rowland.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1752739AbcK3PWq (ORCPT ); Wed, 30 Nov 2016 10:22:46 -0500 Date: Wed, 30 Nov 2016 10:22:44 -0500 (EST) From: Alan Stern X-X-Sender: stern@iolanthe.rowland.org To: Changming Huang cc: gregkh@linuxfoundation.org, , , , Subject: Re: [PATCH v4] fsl/usb: Workarourd for USB erratum-A005697 In-Reply-To: <1480398338-22035-1-git-send-email-jerry.huang@nxp.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1222 Lines: 29 On Tue, 29 Nov 2016, Changming Huang wrote: > The EHCI specification states the following in the SUSP bit description: > In the Suspend state, the port is sensitive to resume detection. > Note that the bit status does not change until the port is suspended and > that there may be a delay in suspending a port if there is a transaction > currently in progress on the USB. > > However, in NXP USBDR controller, the PORTSCx[SUSP] bit changes immediately > when the application sets it and not when the port is actually suspended. > > So the application must wait for at least 10 milliseconds after a port > indicates that it is suspended, to make sure this port has entered > suspended state before initiating this port resume using the Force Port > Resume bit. This bit is for NXP controller, not EHCI compatible. > > Signed-off-by: Changming Huang > Signed-off-by: Ramneek Mehresh > --- > Changes in v4: > - release spinlock before sleeping > Changes in v3: > - add 10ms delay in function ehci_hub_control > - fix typos > Changes in v2: > - move sleep out of spin-lock > - add more comment for this workaround Acked-by: Alan Stern