Received: by 2002:a05:6358:9144:b0:117:f937:c515 with SMTP id r4csp1801508rwr; Fri, 28 Apr 2023 01:57:04 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7742r2xjLqB/srUqCx6j7R3aX6wH7llPCHP65vJlDN+Z8eIu1bTH5VEhQWVNAVzTpPc/h2 X-Received: by 2002:a17:902:e805:b0:19e:7a2c:78a7 with SMTP id u5-20020a170902e80500b0019e7a2c78a7mr5917459plg.57.1682672223771; Fri, 28 Apr 2023 01:57:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1682672223; cv=none; d=google.com; s=arc-20160816; b=rYdeKbvBCo3QvoMcF91aeV572Dtsx0sGf+Ew+wj+ifibrfM2xRQrTFq8hIcWrRzbY+ /A7uK4HHCtto/0oplb0k1VTiox2Mcs2uCzUaFljHiG0SXwSVe1wqMeZNsr7cIaKSqOgB Obeb+yZ6EiPwAhb1tTEqFwqqpczYTuM5KUjx/XiTJJ404o0c2lhR7rDK+mxbbSBNS5ny zi+o6D5P4FFH5fWfyhctDD1QHQnD5LvhJ26cMDAwQFNI1YRd4ITrJPYgDqv01gkq+fky DdKPvpllrvJxFIUet6/YrWGt9bOvLBBALp450sWX8G5PvAkj1Qt7cVFjcUq0teuZNd3+ qzzw== 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=tk1UAX9UhWRZmxU7jTxIepo0Y/b7yY3DzTa8lJUPuuM=; b=B7uIhS8OVuZiCKOMpaVXXrt0u3QvYz1LpMiBRuC6q8Bq/6IG5MilryDwRGWuQmqdbz L7eXVo9FdHvxsPGxWbuw4TGZq1Hp9M3k+E7MtNPqq3bzE62ydvuzP6V0DFaEQVi8hqE/ 4g6nM45t4vgADLpGrWYHQZzUhH5xIBp2w0sWn0dwuLHPRxXxhGaR5vkb3NDABCtTQC/I XE55EaiUYNP5tLEVIUp4XBcYUK/t/SQ0H5u7Fa1DAKUY5q2XRmkyAiksLdGa2ang2s80 qd7U/dxUvQkuinOen8ryVSwghsnzZ/o0dSu23Z6xk6npCStKZZRAzgRWDs0WY7CoBKa4 PSCQ== 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 Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u8-20020a170902e5c800b0019fe9a63cf2si22382882plf.609.2023.04.28.01.56.52; Fri, 28 Apr 2023 01:57:03 -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 S1345737AbjD1Izt (ORCPT + 99 others); Fri, 28 Apr 2023 04:55:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:32816 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345600AbjD1IzY (ORCPT ); Fri, 28 Apr 2023 04:55:24 -0400 Received: from rtits2.realtek.com.tw (rtits2.realtek.com [211.75.126.72]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6956E59E5; Fri, 28 Apr 2023 01:54:50 -0700 (PDT) Authenticated-By: X-SpamFilter-By: ArmorX SpamTrap 5.77 with qID 33S8rkMqB023977, 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 33S8rkMqB023977 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=OK); Fri, 28 Apr 2023 16:53:46 +0800 Received: from RTEXMBS04.realtek.com.tw (172.21.6.97) 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; Fri, 28 Apr 2023 16:53:48 +0800 Received: from fc34.localdomain (172.22.228.98) by RTEXMBS04.realtek.com.tw (172.21.6.97) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.7; Fri, 28 Apr 2023 16:53:47 +0800 From: Hayes Wang To: , CC: , , , , Hayes Wang Subject: [PATCH net v3 2/3] r8152: fix the poor throughput for 2.5G devices Date: Fri, 28 Apr 2023 16:53:30 +0800 Message-ID: <20230428085331.34550-411-nic_swsd@realtek.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230428085331.34550-409-nic_swsd@realtek.com> References: <20230428085331.34550-409-nic_swsd@realtek.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-Originating-IP: [172.22.228.98] X-ClientProxiedBy: RTEXH36505.realtek.com.tw (172.21.6.25) To RTEXMBS04.realtek.com.tw (172.21.6.97) X-KSE-ServerInfo: RTEXMBS04.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 Fix the poor throughput for 2.5G devices, when changing the speed from auto mode to force mode. This patch is used to notify the MAC when the mode is changed. Fixes: 195aae321c82 ("r8152: support new chips") Signed-off-by: Hayes Wang --- drivers/net/usb/r8152.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c index afd50e90d1fe..58670a65b840 100644 --- a/drivers/net/usb/r8152.c +++ b/drivers/net/usb/r8152.c @@ -199,6 +199,7 @@ #define OCP_EEE_AR 0xa41a #define OCP_EEE_DATA 0xa41c #define OCP_PHY_STATUS 0xa420 +#define OCP_INTR_EN 0xa424 #define OCP_NCTL_CFG 0xa42c #define OCP_POWER_CFG 0xa430 #define OCP_EEE_CFG 0xa432 @@ -620,6 +621,9 @@ enum spd_duplex { #define PHY_STAT_LAN_ON 3 #define PHY_STAT_PWRDN 5 +/* OCP_INTR_EN */ +#define INTR_SPEED_FORCE BIT(3) + /* OCP_NCTL_CFG */ #define PGA_RETURN_EN BIT(1) @@ -7554,6 +7558,11 @@ static void r8156_hw_phy_cfg(struct r8152 *tp) ((swap_a & 0x1f) << 8) | ((swap_a >> 8) & 0x1f)); } + + /* Notify the MAC when the speed is changed to force mode. */ + data = ocp_reg_read(tp, OCP_INTR_EN); + data |= INTR_SPEED_FORCE; + ocp_reg_write(tp, OCP_INTR_EN, data); break; default: break; @@ -7949,6 +7958,11 @@ static void r8156b_hw_phy_cfg(struct r8152 *tp) break; } + /* Notify the MAC when the speed is changed to force mode. */ + data = ocp_reg_read(tp, OCP_INTR_EN); + data |= INTR_SPEED_FORCE; + ocp_reg_write(tp, OCP_INTR_EN, data); + if (rtl_phy_patch_request(tp, true, true)) return; -- 2.40.0