From patchwork Fri Jan 5 09:40:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ran Wang X-Patchwork-Id: 10146239 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 5581360153 for ; Fri, 5 Jan 2018 10:13:25 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 45160223C7 for ; Fri, 5 Jan 2018 10:13:25 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 37AEC27BFF; Fri, 5 Jan 2018 10:13:25 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.2 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED, DKIM_VALID, RCVD_IN_DNSWL_MED autolearn=unavailable version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 97B5E223C7 for ; Fri, 5 Jan 2018 10:13:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=ip8Dd9sCJuB5lZkKPvCyA6raxdyPfF7hvSco4wUumxs=; b=Af05sIHHKITR4H TGRjwUFR74Dd1aNfPAtQcr+AVg72GpfhKXDl5ZoeEcX+SizgB9fpD5Mi5CeHvYD0lyUfMRMZpQp7N QgifwD2l63tmv0aPJR1XDW9HBvJjUttDctVn2sCBk1peH3qAKw75gSBppAWxr6HWWrcDo+s6IWAXg bBClyXysco/qlVty7JQellckBIP94G8DHrajf66ztq6exAVASq12KObMlkHIvKKoloHZfEszFRPw7 QszCUabglpQn36w7BlH1iNSvsS7tdCBJfC6p9whO2bYJSB5DKG4TjPa4qvw7WorZMQpuL/FOXwDq9 4LlbyyyU1eCw4lZ/O5SA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.89 #1 (Red Hat Linux)) id 1eXP04-0008Kw-9P; Fri, 05 Jan 2018 10:13:20 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by bombadil.infradead.org with esmtps (Exim 4.89 #1 (Red Hat Linux)) id 1eXP00-00084L-EX for linux-arm-kernel@bombadil.infradead.org; Fri, 05 Jan 2018 10:13:16 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Type:MIME-Version:References: In-Reply-To:Message-ID:Date:Subject:CC:To:From:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=HVHv0GqgB7pRWwxBhdMpkTsqnCFK83x0jnCWKc3oefg=; b=tJzOqT3VfBSWwq6xsPX0ynFnM vN57DJA1am83TUvJlhArWvXaOhe/8C7EgcVK+2Xglt6IppLtVI6dNbW2Fr0KgVaWMSvfNiBgPOjqC gKepfshR9B5iRuKPDHajCxGJgsLevSHStqGGZkrOKIDE10Qm1ml5YIL8ugPa5n0pYUnDscJMgPunt rjvkaOt9e0FkmBxTdj7f+CRz/8W6GiWma3IhWr2vZNSTD73IHd4vqrm1Qm/I91ukr9NMvPjGwKiwa ai28to0fldiCob4Y5X2ZS9evcc/zbfizpwwhnLbZADjNrfv+HGAYi0yc35kyQsUvXmr0iJ2Dm0DXv ZjJAYNFqQ==; Received: from mail-sn1nam01on0607.outbound.protection.outlook.com ([2a01:111:f400:fe40::607] helo=NAM01-SN1-obe.outbound.protection.outlook.com) by casper.infradead.org with esmtps (Exim 4.89 #1 (Red Hat Linux)) id 1eXOnX-0007m2-CN for linux-arm-kernel@lists.infradead.org; Fri, 05 Jan 2018 10:00:25 +0000 Received: from BN6PR03CA0075.namprd03.prod.outlook.com (2603:10b6:405:6f::13) by SN2PR03MB2366.namprd03.prod.outlook.com (2603:10b6:804:e::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.386.5; Fri, 5 Jan 2018 10:00:10 +0000 Received: from BY2FFO11FD009.protection.gbl (2a01:111:f400:7c0c::102) by BN6PR03CA0075.outlook.office365.com (2603:10b6:405:6f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.386.5 via Frontend Transport; Fri, 5 Jan 2018 10:00:10 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BY2FFO11FD009.mail.protection.outlook.com (10.1.14.73) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.345.12 via Frontend Transport; Fri, 5 Jan 2018 09:59:43 +0000 Received: from titan.ap.freescale.net ([10.192.208.233]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id w059xonR027174; Fri, 5 Jan 2018 03:00:05 -0700 From: Ran Wang To: Rob Herring , Mark Rutland , Russell King , Catalin Marinas , Will Deacon , Mathias Nyman , Greg Kroah-Hartman Subject: [PATCH 4/4] xHCI: Handle dwc3 erratum on USB3 HW LPM feature. Date: Fri, 5 Jan 2018 17:40:09 +0800 Message-ID: <20180105094009.22599-4-ran.wang_1@nxp.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20180105094009.22599-1-ran.wang_1@nxp.com> References: <20180105094009.22599-1-ran.wang_1@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131596199834179139; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(346002)(39860400002)(39380400002)(376002)(396003)(2980300002)(1110001)(1109001)(339900001)(50944005)(199004)(189003)(81166006)(68736007)(8656006)(110136005)(50226002)(316002)(81156014)(8936002)(106466001)(54906003)(105606002)(4326008)(1076002)(51416003)(76176011)(77096006)(97736004)(86362001)(356003)(104016004)(305945005)(50466002)(36756003)(7416002)(53936002)(48376002)(498600001)(8676002)(59450400001)(47776003)(5660300001)(2950100002)(2906002)(85426001)(16586007); DIR:OUT; SFP:1101; SCL:1; SRVR:SN2PR03MB2366; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11FD009; 1:CESpFlJIGGL+IAbf/o5Z8PIcE70XmU3xq4AC6WuIwzwvIAD7LzsBUofpxNkhcKuFUe8HOl+ueP8WrfWPgkSWHfDn7so7ZLSh9VAT0Ve1yY8XM13VUhkYxL6XfC9JHJ/p MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: caa7ad80-8140-4c04-5643-08d554230b5f X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(4534020)(4628075)(201703131517081)(5600026)(4604075)(2017052603307); SRVR:SN2PR03MB2366; X-Microsoft-Exchange-Diagnostics: 1; SN2PR03MB2366; 3:+8sEHy5QvvBzwkEkDEFrVfFlxFaVp44vbW7o9Vl+4udMss43xFV/RiIqpdOaFgKUxV2/ittRgADQjmIyaRH3pkdbEkimk/nJVw07XJSX9v54u110Sr+JxjtmJLpafLWObWOK9I7sxzX/ufnZ7jjd152v+CaR5WdzZIppY52yycnbHsTYWnUFDejCjMp0i1ZYW7C9i/0zZqdjpLdZKNCyLZ3AEvmMREK0ACQe+4noHZvvw7LKqOw/FV9oJjiPDVhteAb57qqU0X6kusHtuibNgtokH0rlgK5yBgyFhD0w7BTMtF41jLUsYE+H3zAxb+4h0MVal5yW5x9W5i7IkbiDO4Y1cw94V4GfDXtx3E9jEIA=; 25:9Xxp1aO+HJ/17+/fkvj931Uml8Fwf09BWpUEkvayxHGn2pksbuJ4W5mCdGft4uXIYvoLP4qV0Ujd68j0n5efmDnxbd7zX1IMpMZg435844Qkc3uMibZDX1dP9Fy0Tlk/9SAzNRrQzMN6A2n+l7IAI1yA0WPIhaDt4y6yyIbpbw9SiTDNpE8GVbE1LuO6BI4KdgrMDWmT/8DNdJwd+tOYrxbpf4Iw02HQxVpXALMiOUiA3vpfoT+bUTcN/TE0Vpad26hC6nH9EdVX8JMznvc1A1eD2q1iGHHQKCBAUlka7J9oCCCiuw0DQ8zJ0ow34AgZEb/fZLl6cCEhCPgThFoXzw== X-MS-TrafficTypeDiagnostic: SN2PR03MB2366: X-Microsoft-Exchange-Diagnostics: 1; SN2PR03MB2366; 31:FAyxg6ErVfnRdX/Skzor4bZCrvFJ3ggQIB5f+BnWLfHpl2p0ickscss9AWj1PddCbdpXpFc+B5IPFZhElVHjMMvh/IIMGFO6Mpto+tGxXPW0Z6iTigpy3m2pLZsUSYTCz06cmYgx7Vah5pV8p0LduLCJ84g0A9E8XQj/tnxxbuMOAeuMCsVosvgXV1XJ7jwGqLF9rLecT8tKwOuelSxEFU+4kspMxh3xNHBNne6jgdI=; 4:rSovD4O9F3iXIaC49D56Ec3bn5daGroOw/REFQ58ZbRyDPXUrU5FtRxZgxHqtqb7p57TA/0hFwbNtnVSKpVgZWqTS/Zstm+3vlXcBI8MqxA/p0MyGGa5Hg1nRbMZIV2oISLzNu5uwheMmtfIz6n8sefUS+/Z1nEdHdDiO7a+4cfVUozoGLjLep7WYVILUC/iMnPi05KJp/vfHLencIDo7UHr3yBjppTiNi5r5N/1YuETN7hcWNKPhNVf9NhbrW11BeMNd7QhjA8Bj5PVcvs+V25BvoZmS9e1Nwa/fsnxGOck5xk6Svt0AqZuoIjwUKKG X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095135)(2401047)(5005006)(8121501046)(93006095)(93001095)(10201501046)(3002001)(3231023)(944510075)(944921075)(946801075)(946901075)(6055026)(6096035)(201703131430075)(201703131448075)(201703131433075)(201703161259150)(201703151042153)(20161123565025)(20161123556025)(20161123561025)(20161123563025)(20161123559100)(201708071742011); SRVR:SN2PR03MB2366; BCL:0; PCL:0; RULEID:(100000803101)(100110400095)(400006); SRVR:SN2PR03MB2366; X-Forefront-PRVS: 05437568AA X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN2PR03MB2366; 23:mz6lOwjr1uHitQUCVO/bhDuq8M9r1AbrUIN4adi7m?= =?us-ascii?Q?WKWAhE08X1ptOvVMDYQXniZeFokxllOy8BtPxYZ9E7rcOYkiSSi82MpNhMA7?= =?us-ascii?Q?FThE4fmWmh7a+vFzTCwUgXKVq1oF2i+E8yU0WwEgtAMPJoV7VGNErXddBWVV?= =?us-ascii?Q?/o5tZLfLWV5f5AhpdhvsS4tMTKczR5lDGYzyK5zRSfYfkZ68oDnw7ZPdOdFo?= =?us-ascii?Q?+Sij5cETLlNgEunGOVUkYqjzA76QDWc4yEobvJBL/TdmnO9PurIGZgnUiEc/?= =?us-ascii?Q?puwLUSI8y7tgt8vfa151E9G2z60C2jfN527ThKM7mFxbAg1Fp0P5eTjMx3k3?= =?us-ascii?Q?mFbtnkhrmU2neNa05ugBmYfw5yiqb9K5lCh4Dr6tKhwg+3wnUBWkO2iuBcXi?= =?us-ascii?Q?5VlK6Zcj8I1bptNdsu7Vj1LjKlBrY6JYgJZabJbFeNTxFn9vqUdAnl5iqDW0?= =?us-ascii?Q?mBX1v1nhORvCO8p2LFDTuI9iFl3zfTqVhED0+nO7YISxiUsHOl5sNRLHduD3?= =?us-ascii?Q?pTSV9U5Q8UC+HPm3iIz73vz+V/PS7SXFz76iL2YZTvsjxFXmLghvnzZOCn0A?= =?us-ascii?Q?g7q5lr0OxIDYIGGcmXQ0UWD8RpEcrSa4dDtZWDaKWk51OV4qtT3VUaxQZypT?= =?us-ascii?Q?+JTRgv/CnY8WzlpscJQoWBIrud8vEnk24njPzTUhIGg2pG7PwunRWsGc/RoH?= =?us-ascii?Q?iMwdQKdbV/2gBjgYCLMPdl/XbTfZUnenfS4nLzV35XorZOhN8q/Lt1rTEXKY?= =?us-ascii?Q?rOaQcYGlxWG1TMKGE5RPHFITfWju9akUwicHe2M89YVTJK+HRX+8Fgiie9DP?= =?us-ascii?Q?OJF1ujE8sIuE763rMhQjtpJ9KqPX2LHUzrOZyMNWXk9EHYZnvcJ1dvubDdCn?= =?us-ascii?Q?BgX0HDkaJfHQdNO4htRc7aFNc8gfhB9f3DrH9j+lvNqwlULXUO594f0aVc/M?= =?us-ascii?Q?WsStJGwR9kGp+carMeY4MHS2BFhN+eADGHI567jJkaQf16ycFH+1il5Nwxa2?= =?us-ascii?Q?K8w4llJF8z1B3sH2AsxyG6mHnEjbH8vX00c5vqTXWD2HxdHAnu+eR8qB+F7b?= =?us-ascii?Q?Quw9uMPZcD4gWVRxCENm4DCt06Ii/U4ceHM+/G6ZvYy4PC2mtDfIRajfMjCv?= =?us-ascii?Q?0plEcLriY4=3D?= X-Microsoft-Exchange-Diagnostics: 1; SN2PR03MB2366; 6:9KFFfiyvkPz5Sy5PS3NNybOTZV72cp+ssc/Qz7VopFFs6fvMazQBwFLc0CSJeQfid2KHWCMmW6bMQiI89mFq8h9+cU4QrS2tNjIPEKBwkR6dNGYpeA0ya+/WjoN7lwoL0n2En8eHf46ACfnlYQU6k6/7R4ASJhmFSvigLYgnZvjg4ufxizF2ylqGYM7H0F2cyHy6MeORvA+Y/kiXcTCA0lFCBgAj46vZKfWU4y2cNhq/1KUauOanp7L2uCYt0wgohmx6sMC484C2iZYF5ZDZCMYbP3Hwbmbl90zCPOr5fqd0Xs/QpihZeIitdeHGnbBfVR8pPeY4lbz7zK7bZGaFkzgDHtekmgLKGHOgZrl/5Cw=; 5:3M9wM3Ok2FSvsDmJ+JbOQGA6jHLe5hjt0TD2ER4bf6qmPOn71ru2dfxGDn7gIDnlFgO39PQ3hjBuHC2RXNurHkoVUEANtOcKkCgbaVL/yOx5bshuUM6Je7FXizGWmqqID+xNlu1viyeuOTq0EhihWd8dAxd0n0UJz27VcYCvnZI=; 24:+EFEYMRAkK7HgaigXRpDgpzX3SJXnfO5E2cO8Cdv6et222X8VQuXHTPigc0e2ZBRsFwuoBdihbk2CHZWD7fnhknDd0yoUQXom4AG3F1GL2Y=; 7:HiNbLAuH/tAkV3ehppNWwWzWm3eNNQRzfjlxQSQOPvIMISaLD47+wrjV77jRVO3VNAr8V00ArPd8HjuijsucZvPRlPy0KxOFwJanczRT8cIXPNRYCoyU5LUpRQRYDJ1ZZTHzgiBdKMZEcNTkWnthhDDkOtS81PrABCt1xtKD6hXoNikG1wrH10tkucjiWlP89kNH7N3JvgVAPbvjxdY0oXDuvco3TQbG572TxHMuFB0bxxtQQZPT7kH3839Si1h8 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2018 09:59:43.1839 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: caa7ad80-8140-4c04-5643-08d554230b5f X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN2PR03MB2366 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20180105_100023_524186_72FD9361 X-CRM114-Status: GOOD ( 23.63 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Felipe Balbi , devicetree@vger.kernel.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Li Yang , Ran Wang , Shawn Guo , linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Synopsys STARS ticket: 90000969472(A-010131) Description: This erratum is applicable for the USB 3.0 Super Speed host mode operation. When the U2 timer expires while in U1 mode, the USB 3.0 controller completes a U1->U2 entry operation lasting three mac3_clk (24 ns). If the xHCI driver issues a U3 request during this operation, thecontroller drops this request. Impact: The controller ignores the request when the xHCI driver programs the U3 entry (PORTSC.PLS = U3). Workaround: 1. Before initiating U3 entry, save PORTPMSC. 2. Disable U2 entry by programming PORTPMSC[U2 Timeout] = h'FF. 3. After U3 entry, re-enable the U2 timer by programming PORTPMSC with the value saved in Step 1. Signed-off-by: Ran Wang --- drivers/usb/host/xhci-hub.c | 22 ++++++++++++++++++++++ drivers/usb/host/xhci-plat.c | 6 +++++- drivers/usb/host/xhci.h | 1 + 3 files changed, 28 insertions(+), 1 deletions(-) diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c index f070f94..a61185e 100644 --- a/drivers/usb/host/xhci-hub.c +++ b/drivers/usb/host/xhci-hub.c @@ -676,12 +676,34 @@ void xhci_set_link_state(struct xhci_hcd *xhci, __le32 __iomem **port_array, int port_id, u32 link_state) { u32 temp; + u32 portpmsc_u2_backup = 0; + + /* Backup U2 timeout info before initiating U3 entry erratum A-010131 */ + if (xhci->shared_hcd->speed >= HCD_USB3 && + link_state == USB_SS_PORT_LS_U3 && + (xhci->quirks & XHCI_DIS_U1U2_WHEN_U3)) { + portpmsc_u2_backup = readl(port_array[port_id] + PORTPMSC); + portpmsc_u2_backup &= PORT_U2_TIMEOUT_MASK; + temp = readl(port_array[port_id] + PORTPMSC); + temp |= PORT_U2_TIMEOUT_MASK; + writel(temp, port_array[port_id] + PORTPMSC); + } temp = readl(port_array[port_id]); temp = xhci_port_state_to_neutral(temp); temp &= ~PORT_PLS_MASK; temp |= PORT_LINK_STROBE | link_state; writel(temp, port_array[port_id]); + + /* Restore U2 timeout info after U3 entry complete */ + if (xhci->shared_hcd->speed >= HCD_USB3 && + link_state == USB_SS_PORT_LS_U3 && + (xhci->quirks & XHCI_DIS_U1U2_WHEN_U3)) { + temp = readl(port_array[port_id] + PORTPMSC); + temp &= ~PORT_U2_TIMEOUT_MASK; + temp |= portpmsc_u2_backup; + writel(temp, port_array[port_id] + PORTPMSC); + } } static void xhci_set_remote_wake_mask(struct xhci_hcd *xhci, diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c index 1969e56..616c56e 100644 --- a/drivers/usb/host/xhci-plat.c +++ b/drivers/usb/host/xhci-plat.c @@ -266,8 +266,12 @@ static int xhci_plat_probe(struct platform_device *pdev) if (device_property_read_bool(sysdev, "usb2-lpm-disable")) xhci->quirks |= XHCI_HW_LPM_DISABLE; - if (device_property_read_bool(sysdev, "usb3-lpm-capable")) + if (device_property_read_bool(sysdev, "usb3-lpm-capable")) { xhci->quirks |= XHCI_LPM_SUPPORT; + if (device_property_read_bool(sysdev, + "snps,dis-u1u2-when-u3-quirk")) + xhci->quirks |= XHCI_DIS_U1U2_WHEN_U3; + } if (device_property_read_bool(&pdev->dev, "quirk-broken-port-ped")) xhci->quirks |= XHCI_BROKEN_PORT_PED; diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h index b966cd8..9704779 100644 --- a/drivers/usb/host/xhci.h +++ b/drivers/usb/host/xhci.h @@ -1835,6 +1835,7 @@ struct xhci_hcd { /* Reserved. It was XHCI_U2_DISABLE_WAKE */ #define XHCI_ASMEDIA_MODIFY_FLOWCONTROL (1 << 28) #define XHCI_HW_LPM_DISABLE (1 << 29) +#define XHCI_DIS_U1U2_WHEN_U3 (1 << 30) unsigned int num_active_eps; unsigned int limit_active_eps;