Re: usb:xhci: support disable usb2 LPM Remote Wakeup
From: Thang Q. Nguyen
Date: Mon Dec 12 2016 - 03:55:09 EST
Hi,
On Mon, Dec 12, 2016 at 3:37 PM, Felipe Balbi
<felipe.balbi@xxxxxxxxxxxxxxx> wrote:
>
> Hi,
>
> "Thang Q. Nguyen" <tqnguyen@xxxxxxx> writes:
>> On Sat, Dec 10, 2016 at 4:36 AM, Rob Herring <robh@xxxxxxxxxx> wrote:
>>> On Sun, Dec 04, 2016 at 07:42:01PM +0700, Thang Q. Nguyen wrote:
>>>> From: Thang Nguyen <tqnguyen@xxxxxxx>
>>>>
>>>> As per USB 2.0 link power management addendum ECN, table 1-2, page 4,
>>>> device or host initiated via resume signaling; device-initiated resumes
>>>> can be optionally enabled/disabled by software. This patch adds support
>>>> to control enabling the USB2 RWE feature via DT/ACPI attribute.
>>>>
>>>> Signed-off-by: Vu Nguyen <vnguyen@xxxxxxx>
>>>> Signed-off-by: Thang Nguyen <tqnguyen@xxxxxxx>
>>>> ---
>>>> Documentation/devicetree/bindings/usb/usb-xhci.txt | 1 +
>>>> drivers/usb/host/xhci-plat.c | 3 +++
>>>> drivers/usb/host/xhci.c | 5 ++++-
>>>> drivers/usb/host/xhci.h | 1 +
>>>> 4 files changed, 9 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/usb/usb-xhci.txt b/Documentation/devicetree/bindings/usb/usb-xhci.txt
>>>> index 966885c..9b4cd14 100644
>>>> --- a/Documentation/devicetree/bindings/usb/usb-xhci.txt
>>>> +++ b/Documentation/devicetree/bindings/usb/usb-xhci.txt
>>>> @@ -25,6 +25,7 @@ Required properties:
>>>>
>>>> Optional properties:
>>>> - clocks: reference to a clock
>>>> + - usb2-rwe-disable: disable USB2 LPM Remote Wakeup capable
>>>
>>> Remote wakeup has been around since USB 1.0 days. Does this need to be
>>> USB2 or XHCI specific?
>> This is XHCI specific. Per XHCI specification 1.1, remote wakeup is
>> optional for XHCI 1.0 and required for XHCI 1.1. This patch provides
>> ability for software to disable RWE for USB2 in XHCI1.0 controller.
>
> is there no way of detecting this in runtime?
Current driver always enable remote wakeup when the controller and USB
support this feature. However, per the Errata, software can optionally
enable/disable this.
Some XHCI-1.0-compatible controller does not implement features such
as HIRD, BESL which are optional for XHCI 1.1 will be fail to work
with USB2.0 device that require long time to resume from suspend.
Disabling remote wakeup by software will make this case not happen.
>
> --
> balbi
--
Thang Q. Nguyen | Staff SW Eng.
C: +849.7684.7606 | O: +848.3770.0640
F: +848.3770.0641 | tqnguyen@xxxxxxx