RE: [PATCH v2] usb: xhci: Don't drive port 2.0 reset while resuming
On Wed, 26 Oct 2016, Sriram Dash wrote: > >From: Mathias Nyman [mailto:mathias.ny...@linux.intel.com] > >I don't think usb core tries to drive reset while port is still resuming > > > > I am skeptical about it and hope somebody may help us on this. You can see for yourself. In drivers/usb/core/hub.c, the usb_reset_device() routine calls usb_autoresume_device() before calling usb_reset_and_verify_device(). Therefore the port will have finished resuming before the reset signal is sent. Alan Stern
RE: [PATCH v2] usb: xhci: Don't drive port 2.0 reset while resuming
>From: Mathias Nyman [mailto:mathias.ny...@linux.intel.com] >On 25.10.2016 13:45, Sriram Dash wrote: >> For the USB3.0 controller, USB 2.0 reset not driven while port is in >> Resume state. So, do not program the USB 2.0 reset >> (PORTSC[PR]=1) while in Resume state. >> >> Signed-off-by: Rajat Srivastava >> Signed-off-by: Sriram Dash >> Signed-off-by: Rajesh Bhagat >> --- > >What is the actual issue that you are fixing here? This was an erratum from Synopsis STAR: 9000962562 >Is there some device that is in resume (PLS==XDEV_RESUME) while driving reset? > We have not reproduced this as such. >I just sent a pach for increasing the resume time signaling to 40ms when >clearing >the PORT_FEAT_SUSPEND. >Does that work for you? > >If not, then we should look closer at why clearing the suspend does not work >properly. >One issue could be that ClearPortFeature PORT_FEAT_SUSPEND does not really >read or wait for for changes in port status. It blindly sets the states based >on time >passed. > >Or if it's after system suspend there might be something in bus_resume that is >not >working. > >I don't think usb core tries to drive reset while port is still resuming > I am skeptical about it and hope somebody may help us on this. >-Mathias >
Re: [PATCH v2] usb: xhci: Don't drive port 2.0 reset while resuming
On 25.10.2016 13:45, Sriram Dash wrote: For the USB3.0 controller, USB 2.0 reset not driven while port is in Resume state. So, do not program the USB 2.0 reset (PORTSC[PR]=1) while in Resume state. Signed-off-by: Rajat Srivastava Signed-off-by: Sriram Dash Signed-off-by: Rajesh Bhagat --- What is the actual issue that you are fixing here? Is there some device that is in resume (PLS==XDEV_RESUME) while driving reset? I just sent a pach for increasing the resume time signaling to 40ms when clearing the PORT_FEAT_SUSPEND. Does that work for you? If not, then we should look closer at why clearing the suspend does not work properly. One issue could be that ClearPortFeature PORT_FEAT_SUSPEND does not really read or wait for for changes in port status. It blindly sets the states based on time passed. Or if it's after system suspend there might be something in bus_resume that is not working. I don't think usb core tries to drive reset while port is still resuming -Mathias