From patchwork Fri Apr 28 08:53:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hayes Wang X-Patchwork-Id: 88536 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp796161vqo; Fri, 28 Apr 2023 02:11:53 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5WohZnIX+PRmMvsT7im8aa/5TYRc0qadIKpe9GYUToU6jpY5QF6fmkETChQkuUHBiHg0y9 X-Received: by 2002:a17:90a:764f:b0:24b:6301:17ce with SMTP id s15-20020a17090a764f00b0024b630117cemr4808937pjl.39.1682673112784; Fri, 28 Apr 2023 02:11:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1682673112; cv=none; d=google.com; s=arc-20160816; b=SSbogOI32E1PGIoCWZXChTzPexNgZJ/GfA3vt+eR9vVogdZc3sXIS30/UZHhI72NlF jpIsMc6IINYkkchMYSRW+tn8ItWatKWBG+yyW2LPLsFVZ5Buqiab2gs7DjLtDgacyAT4 EItYOhNpAtI6cGqXZxt2nVgJ+hHSqTrOi8k0qeb6KrtQazPcAN7EAj2LxeJCoPvmaYll knnZ62Sj+e+Ig7ZoNWA9B1viELJbE2T87BTlRLazMeXUe0aXuKFxuSzCHNVwpzNyirOb Gn73atdq6z/+rxijlZFVNN5dqkeExjY8JNqvq4uRucyGli8VenOp+1jEWheiR+wmR3wU nZiw== 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id bk13-20020a056a02028d00b005192652814bsi20838580pgb.541.2023.04.28.02.11.38; Fri, 28 Apr 2023 02:11:52 -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 S1345335AbjD1Izt (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 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1764410641900185101?= X-GMAIL-MSGID: =?utf-8?q?1764410641900185101?= 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 Reviewed-by: Andrew Lunn --- 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;