RE: [PATCH v2] usb: xhci: Don't drive port 2.0 reset while resuming

2016-10-26 Thread Alan Stern
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

2016-10-26 Thread Sriram Dash
>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

2016-10-25 Thread Mathias Nyman

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