From patchwork Wed Apr 19 02:00:42 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?b?U3RhbmxleSBDaGFuZ1vmmIzogrLlvrdd?= X-Patchwork-Id: 85133 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp40396vqo; Tue, 18 Apr 2023 19:12:48 -0700 (PDT) X-Google-Smtp-Source: AKy350bMsvTFRJses/vLEOM/FR8z/RD/y2jxsdiLxR/rePsvmyC9mlaWMYGlo9YFvlW57fVHbg3G X-Received: by 2002:a05:6a00:1803:b0:63d:2d99:2e72 with SMTP id y3-20020a056a00180300b0063d2d992e72mr2325284pfa.7.1681870368618; Tue, 18 Apr 2023 19:12:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681870368; cv=none; d=google.com; s=arc-20160816; b=M5EslQrYqa4ODHIP6AKGqKS34S6ztqse3YKfmEFRPgpgabygEwI96K8056D4u8i265 iON8nUzHceBdYIbE0N9xQ/DwAFkGvohFwJkbh+ODbDJVgsXJkuqcT+WvKnsS8mcxDdBh l+KT1prkONujeD8sGJWj0ODCNdY1BkYJpOyyyn230M9ePlszZ2nt3KaGVY5ld/WoY74K aKKnymk0d+mYnTQL/fHbyLKJLbAyxh74x/pbWqXTQ1zV6yTk92rG5LJe1wbPk6DgknId NOYPszqSMgKiBwgWLlpSGYH2gIb07FI/Mz6PQLk0I8rV4ydMYQxEfL622MeyAXnK+3b7 +9lw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:authenticated-by; bh=seAIhiZCdXnMSROFaJfa71Gy7mGs2QnnoaykL+1oPlY=; b=v1ayk+0y+ifbP7JZQUeHrerJE3QPrUGk1V5K1Mqdx1NTrobwr4N+hliTV6FO1CRjBS Fo8+X5eEXlp4IKxAfTWftW5BpkbCk5t56BT/NR4yhNBC1eEpEl3Atj/VOuHmvYDaKcWm 6W9MNTgx4UJVJUt7VJWn7zd/su83edWLx/JnaTiSGVd2u+KrfpPQHke92J+YbMYjgIA3 SZAgaeA3yGt8MfBtMvz5IbhdHMkhMNDA9NKDcEc6xB1SGoKB/ykHmh6X3zNdC4PIarqV R3R09HxwNn7OXTTGc/PUS32sVHR3RZTzm76ynh/vPn2BvVXJRh8dNYCP0pZy+Sa6NEHR sqww== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id y188-20020a6264c5000000b0063b61b49a29si13595987pfb.251.2023.04.18.19.12.36; Tue, 18 Apr 2023 19:12:48 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231593AbjDSCBD (ORCPT + 99 others); Tue, 18 Apr 2023 22:01:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43380 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231273AbjDSCBA (ORCPT ); Tue, 18 Apr 2023 22:01:00 -0400 Received: from rtits2.realtek.com.tw (rtits2.realtek.com [211.75.126.72]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0C080136; Tue, 18 Apr 2023 19:00:58 -0700 (PDT) Authenticated-By: X-SpamFilter-By: ArmorX SpamTrap 5.77 with qID 33J20iZqA021874, This message is accepted by code: ctloc85258 Received: from mail.realtek.com (rtexh36505.realtek.com.tw[172.21.6.25]) by rtits2.realtek.com.tw (8.15.2/2.81/5.90) with ESMTPS id 33J20iZqA021874 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=OK); Wed, 19 Apr 2023 10:00:45 +0800 Received: from RTEXDAG01.realtek.com.tw (172.21.6.100) by RTEXH36505.realtek.com.tw (172.21.6.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.32; Wed, 19 Apr 2023 10:00:44 +0800 Received: from RTEXH36505.realtek.com.tw (172.21.6.25) by RTEXDAG01.realtek.com.tw (172.21.6.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.7; Wed, 19 Apr 2023 10:00:44 +0800 Received: from localhost.localdomain (172.21.252.101) by RTEXH36505.realtek.com.tw (172.21.6.25) with Microsoft SMTP Server id 15.1.2375.32 via Frontend Transport; Wed, 19 Apr 2023 10:00:44 +0800 From: Stanley Chang To: Thinh Nguyen CC: Stanley Chang , Greg Kroah-Hartman , Rob Herring , "Krzysztof Kozlowski" , Felipe Balbi , , , Subject: [PATCH v4 1/2] usb: dwc3: core: add support for disabling High-speed park mode Date: Wed, 19 Apr 2023 10:00:42 +0800 Message-ID: <20230419020044.15475-1-stanley_chang@realtek.com> X-Mailer: git-send-email 2.40.0 MIME-Version: 1.0 X-KSE-ServerInfo: RTEXDAG01.realtek.com.tw, 9 X-KSE-AntiSpam-Interceptor-Info: fallback X-KSE-Antivirus-Interceptor-Info: fallback X-KSE-AntiSpam-Interceptor-Info: fallback X-KSE-ServerInfo: RTEXH36505.realtek.com.tw, 9 X-KSE-AntiSpam-Interceptor-Info: fallback X-KSE-Antivirus-Interceptor-Info: fallback X-KSE-AntiSpam-Interceptor-Info: fallback X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763568903662697746?= X-GMAIL-MSGID: =?utf-8?q?1763568903662697746?= Setting the PARKMODE_DISABLE_HS bit in the DWC3_USB3_GUCTL1. When this bit is set to '1' all HS bus instances in park mode are disabled For some USB wifi devices, if enable this feature it will reduce the performance. Therefore, add an option for disabling HS park mode by device-tree. In Synopsys's dwc3 data book: In a few high speed devices when an IN request is sent within 900ns of the ACK of the previous packet, these devices send a NAK. When connected to these devices, if required, the software can disable the park mode if you see performance drop in your system. When park mode is disabled, pipelining of multiple packet is disabled and instead one packet at a time is requested by the scheduler. This allows up to 12 NAKs in a micro-frame and improves performance of these slow devices. Signed-off-by: Stanley Chang Acked-by: Thinh Nguyen --- drivers/usb/dwc3/core.c | 5 +++++ drivers/usb/dwc3/core.h | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index 476b63618511..8fbc92a5f2cb 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -1233,6 +1233,9 @@ static int dwc3_core_init(struct dwc3 *dwc) if (dwc->parkmode_disable_ss_quirk) reg |= DWC3_GUCTL1_PARKMODE_DISABLE_SS; + if (dwc->parkmode_disable_hs_quirk) + reg |= DWC3_GUCTL1_PARKMODE_DISABLE_HS; + if (DWC3_VER_IS_WITHIN(DWC3, 290A, ANY) && (dwc->maximum_speed == USB_SPEED_HIGH || dwc->maximum_speed == USB_SPEED_FULL)) @@ -1555,6 +1558,8 @@ static void dwc3_get_properties(struct dwc3 *dwc) "snps,resume-hs-terminations"); dwc->parkmode_disable_ss_quirk = device_property_read_bool(dev, "snps,parkmode-disable-ss-quirk"); + dwc->parkmode_disable_hs_quirk = device_property_read_bool(dev, + "snps,parkmode-disable-hs-quirk"); dwc->gfladj_refclk_lpm_sel = device_property_read_bool(dev, "snps,gfladj-refclk-lpm-sel-quirk"); diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h index 4743e918dcaf..30907ffcb3ec 100644 --- a/drivers/usb/dwc3/core.h +++ b/drivers/usb/dwc3/core.h @@ -263,6 +263,7 @@ #define DWC3_GUCTL1_DEV_FORCE_20_CLK_FOR_30_CLK BIT(26) #define DWC3_GUCTL1_DEV_L1_EXIT_BY_HW BIT(24) #define DWC3_GUCTL1_PARKMODE_DISABLE_SS BIT(17) +#define DWC3_GUCTL1_PARKMODE_DISABLE_HS BIT(16) #define DWC3_GUCTL1_RESUME_OPMODE_HS_HOST BIT(10) /* Global Status Register */ @@ -1102,6 +1103,8 @@ struct dwc3_scratchpad_array { * generation after resume from suspend. * @parkmode_disable_ss_quirk: set if we need to disable all SuperSpeed * instances in park mode. + * @parkmode_disable_hs_quirk: set if we need to disable all HishSpeed + * instances in park mode. * @tx_de_emphasis_quirk: set if we enable Tx de-emphasis quirk * @tx_de_emphasis: Tx de-emphasis value * 0 - -6dB de-emphasis @@ -1318,6 +1321,7 @@ struct dwc3 { unsigned dis_tx_ipgap_linecheck_quirk:1; unsigned resume_hs_terminations:1; unsigned parkmode_disable_ss_quirk:1; + unsigned parkmode_disable_hs_quirk:1; unsigned gfladj_refclk_lpm_sel:1; unsigned tx_de_emphasis_quirk:1; From patchwork Wed Apr 19 02:00:43 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?b?U3RhbmxleSBDaGFuZ1vmmIzogrLlvrdd?= X-Patchwork-Id: 85130 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp36092vqo; Tue, 18 Apr 2023 19:02:17 -0700 (PDT) X-Google-Smtp-Source: AKy350YzD4KnYy9sbOQ/T+/7baGXD/g7Bk2PJQ4ywamkIPEUpnvWdc9yHS6bN5EalaiqnHaGaGcT X-Received: by 2002:a17:902:cec8:b0:1a6:dba5:2e60 with SMTP id d8-20020a170902cec800b001a6dba52e60mr4976518plg.25.1681869737172; Tue, 18 Apr 2023 19:02:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681869737; cv=none; d=google.com; s=arc-20160816; b=jm9WuFA4OmThUyAL+apM3699CEuq33pAT8IdKKjzrJTDaRHepdQW9WcOw94niZRs7I PvZk1RaOGY+I/Cg5WbUgTiQ2vFi2Psv8SqYPqlPv55HmTGHyVE4w2rWT2CsOTd/E6ywA U7Xnl3tI7FyuI9Y2QpBC4jDh7axXxqWbodg/wJ8LpCYun1x97RoR/n3a+JxpXp0RA9pT 9W5FRIlXFmHnvr0tlPMjLmZMz/P7p/7Mn20ARYdvjKozyACkbMWNW52X0TT/tkDI3MBM 2LTqJNa8NrP/blrrz9wPUzw5rqj57NZFJWGMmxqCHz3s4IPslIFV/wQItpC+u6HZrwg2 sKqA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :authenticated-by; bh=nVkbBJ+5F7PxrS7pDDOtNcIZoxZ25uBkxMF6fg/8eaU=; b=EjvL/cUIHgv5LurFmb60aD2/Stnnp1YNtQlfTHhY1PQlQ29mkwtVL6Y8gPlEct7Lmm sfA9D86LETVeiv1c2AIcINOvEzekGu6AbAMkb8B02tcJcodz/natSFMWffVqwbaVR48X fjM/ml+IzCHxlrtOzVPATvifQP2rm3GgYq+uuPaU0cPaDkWendWk6ch+8nxEHqKAElKf UuXbaH4mBRIyJzyZ1GOYzYHw0WO98oPASIVna73+2jpLrMv+u+8RQOXuD5HO4s+2nApB I1Cd8NH/kVVLStEY8riGw8T1cbh/VcPX/z+39kFbQAdJDU1T/PTwJ6BbF9Pn2jR15h5Z 4iPQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id g2-20020a1709026b4200b0019e4154578esi14763638plt.76.2023.04.18.19.02.03; Tue, 18 Apr 2023 19:02:17 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231675AbjDSCBG (ORCPT + 99 others); Tue, 18 Apr 2023 22:01:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43378 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230340AbjDSCBA (ORCPT ); Tue, 18 Apr 2023 22:01:00 -0400 Received: from rtits2.realtek.com.tw (rtits2.realtek.com [211.75.126.72]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0E6E16EAB; Tue, 18 Apr 2023 19:00:58 -0700 (PDT) Authenticated-By: X-SpamFilter-By: ArmorX SpamTrap 5.77 with qID 33J20jaP6021960, This message is accepted by code: ctloc85258 Received: from mail.realtek.com (rtexh36506.realtek.com.tw[172.21.6.27]) by rtits2.realtek.com.tw (8.15.2/2.81/5.90) with ESMTPS id 33J20jaP6021960 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=OK); Wed, 19 Apr 2023 10:00:45 +0800 Received: from RTEXMBS03.realtek.com.tw (172.21.6.96) by RTEXH36506.realtek.com.tw (172.21.6.27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.17; Wed, 19 Apr 2023 10:00:45 +0800 Received: from RTEXH36505.realtek.com.tw (172.21.6.25) by RTEXMBS03.realtek.com.tw (172.21.6.96) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.7; Wed, 19 Apr 2023 10:00:44 +0800 Received: from localhost.localdomain (172.21.252.101) by RTEXH36505.realtek.com.tw (172.21.6.25) with Microsoft SMTP Server id 15.1.2375.32 via Frontend Transport; Wed, 19 Apr 2023 10:00:44 +0800 From: Stanley Chang To: Thinh Nguyen CC: Stanley Chang , Rob Herring , Greg Kroah-Hartman , Rob Herring , Krzysztof Kozlowski , Felipe Balbi , , , Subject: [PATCH v4 2/2] dt-bindings: usb: snps,dwc3: Add 'snps,parkmode-disable-hs-quirk' quirk Date: Wed, 19 Apr 2023 10:00:43 +0800 Message-ID: <20230419020044.15475-2-stanley_chang@realtek.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230419020044.15475-1-stanley_chang@realtek.com> References: <20230419020044.15475-1-stanley_chang@realtek.com> MIME-Version: 1.0 X-KSE-ServerInfo: RTEXMBS03.realtek.com.tw, 9 X-KSE-AntiSpam-Interceptor-Info: fallback X-KSE-Antivirus-Interceptor-Info: fallback X-KSE-AntiSpam-Interceptor-Info: fallback X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763568241417788325?= X-GMAIL-MSGID: =?utf-8?q?1763568241417788325?= Add a new 'snps,parkmode-disable-hs-quirk' DT quirk to dwc3 core for disable the high-speed parkmode. For some USB wifi devices, if enable this feature it will reduce the performance. Therefore, add an option for disabling HS park mode by device-tree. In Synopsys's dwc3 data book: In a few high speed devices when an IN request is sent within 900ns of the ACK of the previous packet, these devices send a NAK. When connected to these devices, if required, the software can disable the park mode if you see performance drop in your system. When park mode is disabled, pipelining of multiple packet is disabled and instead one packet at a time is requested by the scheduler. This allows up to 12 NAKs in a micro-frame and improves performance of these slow devices. Signed-off-by: Stanley Chang Acked-by: Rob Herring --- Documentation/devicetree/bindings/usb/snps,dwc3.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Documentation/devicetree/bindings/usb/snps,dwc3.yaml b/Documentation/devicetree/bindings/usb/snps,dwc3.yaml index be36956af53b..45ca967b8d14 100644 --- a/Documentation/devicetree/bindings/usb/snps,dwc3.yaml +++ b/Documentation/devicetree/bindings/usb/snps,dwc3.yaml @@ -232,6 +232,11 @@ properties: When set, all SuperSpeed bus instances in park mode are disabled. type: boolean + snps,parkmode-disable-hs-quirk: + description: + When set, all HighSpeed bus instances in park mode are disabled. + type: boolean + snps,dis_metastability_quirk: description: When set, disable metastability workaround. CAUTION! Use only if you are