From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751303AbdALIyc (ORCPT ); Thu, 12 Jan 2017 03:54:32 -0500 Received: from mga07.intel.com ([134.134.136.100]:49896 "EHLO mga07.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750777AbdALIy3 (ORCPT ); Thu, 12 Jan 2017 03:54:29 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.33,349,1477983600"; d="scan'208";a="1082087583" From: Lu Baolu To: Mathias Nyman Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Lu Baolu Subject: [PATCH 1/1] usb: xhci: set RWE only for remote wakeup capable devices Date: Thu, 12 Jan 2017 16:53:45 +0800 Message-Id: <1484211225-18018-1-git-send-email-baolu.lu@linux.intel.com> X-Mailer: git-send-email 2.1.4 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 Signed-off-by: Lu Baolu --- 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) + pm_val |= PORT_RWE; writel(pm_val, pm_addr); pm_val = readl(pm_addr); pm_val |= PORT_HLE; -- 2.1.4