From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id C2CD442D83 for ; Wed, 28 Jun 2023 16:11:33 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BDDF6410F6; Wed, 28 Jun 2023 16:11:33 +0200 (CEST) Received: from mail-lf1-f45.google.com (mail-lf1-f45.google.com [209.85.167.45]) by mails.dpdk.org (Postfix) with ESMTP id CB45C400EF for ; Wed, 28 Jun 2023 16:11:32 +0200 (CEST) Received: by mail-lf1-f45.google.com with SMTP id 2adb3069b0e04-4f9fdb0ef35so6427155e87.0 for ; Wed, 28 Jun 2023 07:11:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1687961492; x=1690553492; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=8l88WK2kHFwjBC620CFahkvlLGRAEY75w6cXdI7D+00=; b=lDpnB3i5qdOrsMIi3GJRv84MPXqtac3XmI+I6wWQC8xW5b5nxcGtYQNTko2Nvf2/9W Wv43tqjCFLX/5mPJO1bUGcA90y1wLq2ToyExTEyA3Nk6lLwGRpKCqg56QONWt7sG6sqm OSNyklUzTCxMSrTn5RabHYoUDuzkwmZ6z+QI7Cv7qVwk1S+0kwLimu1e/BRLGk3rVX0O KimDVaFv27ESkqYm8hAOofYXYA4MmbOKVfnn+oVAmYbx9qac1jRYVuvCjkMUQ80ceoS0 1YPImDnPEaNWzAJH+nuxIyjMIHL/AjH50UnwQFQFkPnI9wR3JJNUd9HIT+1cV+0Uo9oH xgXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687961492; x=1690553492; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=8l88WK2kHFwjBC620CFahkvlLGRAEY75w6cXdI7D+00=; b=PWrEvART79FAhLPmSdQ2dPXBI8/ysxutBm/jznJa4RCNk2tFAtBJCW/SSzaV3WovSj 8DhzYmTEvsCqJEcV313q6l+uWx+5VxjvmbomQke/l8ZPx0vcP4ZD2tLe4dZrvqjfKv2E tCThRpsSN3o9y8RQqxyXJpQfoZyvDDWcGsewdTI3+HJ23R6D1MmtO08Jxr8Ssk6ZLmfd mvhMby8536UBiGhGUMPsJXNNQwQPxwPmZaO7QVb8MP7Ru11Dwa2fcQl+GRD9MYM1EP+6 JWLnjmjoqDXkzJjHshjxifO4aSAqWL+1Le4YDw7yr02CKc3G3qYqw98VdOfGoIdppVRD 2HrA== X-Gm-Message-State: AC+VfDzduqRj/TbHyK9/zajDMVCOiLoZ2j5cU4L19P/Yc5BSqFAezjCT e8ERR/ca7MhUX5fSPTzDGdRwIJ11BeG5Tw== X-Google-Smtp-Source: ACHHUZ6mJXREy1GraxBTPUfkfKUW1meHVQHRvIfKNox2Y/AylGBl0heO6vPUymlV6bUOSFBwWEJh2Q== X-Received: by 2002:a19:9141:0:b0:4f8:770f:1b01 with SMTP id y1-20020a199141000000b004f8770f1b01mr14266107lfj.19.1687961491868; Wed, 28 Jun 2023 07:11:31 -0700 (PDT) Received: from localhost ([2a01:4b00:d307:1000:f1d3:eb5e:11f4:a7d9]) by smtp.gmail.com with ESMTPSA id o18-20020a056000011200b00313f9085119sm6126515wrx.113.2023.06.28.07.11.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Jun 2023 07:11:31 -0700 (PDT) From: luca.boccassi@gmail.com To: Jiawen Wu Cc: dpdk stable Subject: patch 'net/txgbe: fix to set autoneg for 1G speed' has been queued to stable release 20.11.9 Date: Wed, 28 Jun 2023 15:10:35 +0100 Message-Id: <20230628141046.2145871-11-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230628141046.2145871-1-luca.boccassi@gmail.com> References: <20230615013258.1439718-63-luca.boccassi@gmail.com> <20230628141046.2145871-1-luca.boccassi@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Hi, FYI, your patch has been queued to stable release 20.11.9 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 06/30/23. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/bluca/dpdk-stable This queued commit can be viewed at: https://github.com/bluca/dpdk-stable/commit/99826547c868ab79b3fbdf8ca7b2bda428d4c28d Thanks. Luca Boccassi --- >From 99826547c868ab79b3fbdf8ca7b2bda428d4c28d Mon Sep 17 00:00:00 2001 From: Jiawen Wu Date: Wed, 14 Jun 2023 10:34:24 +0800 Subject: [PATCH] net/txgbe: fix to set autoneg for 1G speed [ upstream commit 658dbfa6360fcda0a5798669f6eac8293e4a2d73 ] Autoneg was always on for 1G speed, fix to set autoneg off. Fixes: 01c3cf5c85a7 ("net/txgbe: add autoneg control read and write") Fixes: e4c515a7bc7e ("net/txgbe: add multi-speed link setup") Signed-off-by: Jiawen Wu --- drivers/net/txgbe/base/txgbe_hw.c | 14 ++++++++++++++ drivers/net/txgbe/base/txgbe_phy.c | 4 +++- drivers/net/txgbe/base/txgbe_type.h | 1 + drivers/net/txgbe/txgbe_ethdev.c | 2 ++ 4 files changed, 20 insertions(+), 1 deletion(-) diff --git a/drivers/net/txgbe/base/txgbe_hw.c b/drivers/net/txgbe/base/txgbe_hw.c index e6ffbd900e..4768c2aa25 100644 --- a/drivers/net/txgbe/base/txgbe_hw.c +++ b/drivers/net/txgbe/base/txgbe_hw.c @@ -2321,10 +2321,24 @@ s32 txgbe_setup_mac_link_multispeed_fiber(struct txgbe_hw *hw, } if (speed & TXGBE_LINK_SPEED_1GB_FULL) { + u32 curr_autoneg; + speedcnt++; if (highest_link_speed == TXGBE_LINK_SPEED_UNKNOWN) highest_link_speed = TXGBE_LINK_SPEED_1GB_FULL; + status = hw->mac.check_link(hw, &link_speed, &link_up, false); + if (status != 0) + return status; + + /* If we already have link at this speed, just jump out */ + if (link_speed == TXGBE_LINK_SPEED_1GB_FULL) { + curr_autoneg = rd32_epcs(hw, SR_MII_MMD_CTL); + if (link_up && (hw->autoneg == + !!(curr_autoneg & SR_MII_MMD_CTL_AN_EN))) + goto out; + } + /* Set the module link speed */ switch (hw->phy.media_type) { case txgbe_media_type_fiber: diff --git a/drivers/net/txgbe/base/txgbe_phy.c b/drivers/net/txgbe/base/txgbe_phy.c index 01bd5a72f1..b25db92a4e 100644 --- a/drivers/net/txgbe/base/txgbe_phy.c +++ b/drivers/net/txgbe/base/txgbe_phy.c @@ -1347,7 +1347,9 @@ txgbe_set_sgmii_an37_ability(struct txgbe_hw *hw) wr32_epcs(hw, SR_MII_MMD_AN_CTL, 0x0105); wr32_epcs(hw, SR_MII_MMD_DIGI_CTL, 0x0200); value = rd32_epcs(hw, SR_MII_MMD_CTL); - value = (value & ~0x1200) | (0x1 << 12) | (0x1 << 9); + value = (value & ~0x1200) | (0x1 << 9); + if (hw->autoneg) + value |= SR_MII_MMD_CTL_AN_EN; wr32_epcs(hw, SR_MII_MMD_CTL, value); return 0; } diff --git a/drivers/net/txgbe/base/txgbe_type.h b/drivers/net/txgbe/base/txgbe_type.h index e17f40b978..27f04082b2 100644 --- a/drivers/net/txgbe/base/txgbe_type.h +++ b/drivers/net/txgbe/base/txgbe_type.h @@ -670,6 +670,7 @@ struct txgbe_hw { bool adapter_stopped; bool allow_unsupported_sfp; bool need_crosstalk_fix; + bool autoneg; uint64_t isb_dma; void IOMEM *isb_mem; diff --git a/drivers/net/txgbe/txgbe_ethdev.c b/drivers/net/txgbe/txgbe_ethdev.c index a9797ff95b..a7f764b288 100644 --- a/drivers/net/txgbe/txgbe_ethdev.c +++ b/drivers/net/txgbe/txgbe_ethdev.c @@ -1571,6 +1571,7 @@ txgbe_dev_start(struct rte_eth_dev *dev) speed = (TXGBE_LINK_SPEED_100M_FULL | TXGBE_LINK_SPEED_1GB_FULL | TXGBE_LINK_SPEED_10GB_FULL); + hw->autoneg = true; } else { if (*link_speeds & ETH_LINK_SPEED_10G) speed |= TXGBE_LINK_SPEED_10GB_FULL; @@ -1582,6 +1583,7 @@ txgbe_dev_start(struct rte_eth_dev *dev) speed |= TXGBE_LINK_SPEED_1GB_FULL; if (*link_speeds & ETH_LINK_SPEED_100M) speed |= TXGBE_LINK_SPEED_100M_FULL; + hw->autoneg = false; } err = hw->mac.setup_link(hw, speed, link_up); -- 2.39.2 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2023-06-28 11:40:08.536611966 +0100 +++ 0011-net-txgbe-fix-to-set-autoneg-for-1G-speed.patch 2023-06-28 11:40:08.060027588 +0100 @@ -1 +1 @@ -From 658dbfa6360fcda0a5798669f6eac8293e4a2d73 Mon Sep 17 00:00:00 2001 +From 99826547c868ab79b3fbdf8ca7b2bda428d4c28d Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 658dbfa6360fcda0a5798669f6eac8293e4a2d73 ] + @@ -10 +11,0 @@ -Cc: stable@dpdk.org @@ -21 +22 @@ -index 2952c408fd..d19fd0065d 100644 +index e6ffbd900e..4768c2aa25 100644 @@ -24 +25 @@ -@@ -2273,10 +2273,24 @@ s32 txgbe_setup_mac_link_multispeed_fiber(struct txgbe_hw *hw, +@@ -2321,10 +2321,24 @@ s32 txgbe_setup_mac_link_multispeed_fiber(struct txgbe_hw *hw, @@ -50 +51 @@ -index 1eb45b068a..d87af656d5 100644 +index 01bd5a72f1..b25db92a4e 100644 @@ -53,2 +54,2 @@ -@@ -1402,7 +1402,9 @@ txgbe_set_sgmii_an37_ability(struct txgbe_hw *hw) - wr32_epcs(hw, SR_MII_MMD_AN_CTL, 0x0105); +@@ -1347,7 +1347,9 @@ txgbe_set_sgmii_an37_ability(struct txgbe_hw *hw) + wr32_epcs(hw, SR_MII_MMD_AN_CTL, 0x0105); @@ -61,0 +63 @@ + return 0; @@ -63 +64,0 @@ - @@ -65 +66 @@ -index c3486b472f..75e839b7de 100644 +index e17f40b978..27f04082b2 100644 @@ -68 +69,2 @@ -@@ -783,6 +783,7 @@ struct txgbe_hw { +@@ -670,6 +670,7 @@ struct txgbe_hw { + bool adapter_stopped; @@ -71 +72,0 @@ - bool dev_start; @@ -73 +73,0 @@ - struct txgbe_devargs devarg; @@ -75,0 +76 @@ + void IOMEM *isb_mem; @@ -77 +78 @@ -index 36c74d353d..962667acdc 100644 +index a9797ff95b..a7f764b288 100644 @@ -80 +81 @@ -@@ -1821,6 +1821,7 @@ txgbe_dev_start(struct rte_eth_dev *dev) +@@ -1571,6 +1571,7 @@ txgbe_dev_start(struct rte_eth_dev *dev) @@ -86 +87 @@ - if (*link_speeds & RTE_ETH_LINK_SPEED_10G) + if (*link_speeds & ETH_LINK_SPEED_10G) @@ -88 +89 @@ -@@ -1832,6 +1833,7 @@ txgbe_dev_start(struct rte_eth_dev *dev) +@@ -1582,6 +1583,7 @@ txgbe_dev_start(struct rte_eth_dev *dev) @@ -90 +91 @@ - if (*link_speeds & RTE_ETH_LINK_SPEED_100M) + if (*link_speeds & ETH_LINK_SPEED_100M)