Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1508278 > unrolled thread

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

Started byMathias Nyman <mathias.nyman@linux.intel.com>
First post2016-10-25 15:00 +0200
Last post2016-10-26 16:40 +0200
Articles 3 — 3 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: [PATCH v2] usb: xhci: Don't drive port 2.0 reset while resuming Mathias Nyman <mathias.nyman@linux.intel.com> - 2016-10-25 15:00 +0200
    RE: [PATCH v2] usb: xhci: Don't drive port 2.0 reset while resuming Sriram Dash <sriram.dash@nxp.com> - 2016-10-26 15:00 +0200
      RE: [PATCH v2] usb: xhci: Don't drive port 2.0 reset while resuming Alan Stern <stern@rowland.harvard.edu> - 2016-10-26 16:40 +0200

#1508278 — Re: [PATCH v2] usb: xhci: Don't drive port 2.0 reset while resuming

FromMathias Nyman <mathias.nyman@linux.intel.com>
Date2016-10-25 15:00 +0200
SubjectRe: [PATCH v2] usb: xhci: Don't drive port 2.0 reset while resuming
Message-ID<sw9uG-5Lw-21@gated-at.bofh.it>
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 <rajat.srivastava@nxp.com>
> Signed-off-by: Sriram Dash <sriram.dash@nxp.com>
> Signed-off-by: Rajesh Bhagat <rajesh.bhagat@nxp.com>
> ---

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   

[toc] | [next] | [standalone]


#1509287

FromSriram Dash <sriram.dash@nxp.com>
Date2016-10-26 15:00 +0200
Message-ID<swvYe-3Qk-23@gated-at.bofh.it>
In reply to#1508278
>From: Mathias Nyman [mailto:mathias.nyman@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 <rajat.srivastava@nxp.com>
>> Signed-off-by: Sriram Dash <sriram.dash@nxp.com>
>> Signed-off-by: Rajesh Bhagat <rajesh.bhagat@nxp.com>
>> ---
>
>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
>

[toc] | [prev] | [next] | [standalone]


#1509484

FromAlan Stern <stern@rowland.harvard.edu>
Date2016-10-26 16:40 +0200
Message-ID<swxwZ-4Y6-1@gated-at.bofh.it>
In reply to#1509287
On Wed, 26 Oct 2016, Sriram Dash wrote:

> >From: Mathias Nyman [mailto:mathias.nyman@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

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web