Hi Mathias, On 01/12/2017 04:53 PM, Lu Baolu wrote: > Xhci spec requires in section 4.23.5.1.1.1 that the RWE bit of USB2 > PORTPMSC register should only set for remote wakeup capble devices. > > This was suggested by Mathias in the following discussion thread. > http://marc.info/?l=linux-usb&m=148154757829677&w=2 > > Suggested-by: Mathias Nyman <[email protected]> > Signed-off-by: Lu Baolu <[email protected]> > --- > drivers/usb/host/xhci.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c > index 0c8deb9..d887e09 100644 > --- a/drivers/usb/host/xhci.c > +++ b/drivers/usb/host/xhci.c > @@ -4191,7 +4191,9 @@ int xhci_set_usb2_hardware_lpm(struct usb_hcd *hcd, > } > > pm_val &= ~PORT_HIRD_MASK; > - pm_val |= PORT_HIRD(hird) | PORT_RWE | PORT_L1DS(udev->slot_id); > + pm_val |= PORT_HIRD(hird) | PORT_L1DS(udev->slot_id); > + if (udev->do_remote_wakeup)
This is not the right thing to check remote wakeup capability of a device. I will rework it and submit v2. Please just ignore this one. Sorry about this. Best regards, Lu Baolu > + pm_val |= PORT_RWE; > writel(pm_val, pm_addr); > pm_val = readl(pm_addr); > pm_val |= PORT_HLE;

