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 959A84301E for ; Thu, 10 Aug 2023 01:52:33 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 915024325B; Thu, 10 Aug 2023 01:52:33 +0200 (CEST) Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2071.outbound.protection.outlook.com [40.107.220.71]) by mails.dpdk.org (Postfix) with ESMTP id 3BFD6406B6 for ; Thu, 10 Aug 2023 01:52:32 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VRjroAnWO8vpG6bRbK8GzvD47ksoZ8ZTym0Q4ue700jeAi+8UhMVxDdU6eM0wsiQ/E74yrJzLXjai/ttb1qNsqwLnmIyxYRHZVIAPFtIOOzlzZ1SeKWmXWSJmr+79HqMKXCo6Uj7/xooWzZ8m5BNHIy2gM9aqbWllcexmtyKK2wvB3EvITyTFqobW3zAaPJTlb1+8HKWndf0lTEUqW1RZqLqjzuppja7qhMX+EZC4T9D7fz8ViDJOkq0cv7xj5FqOt8jgCS5rr9Q39VtbXFkBcC+Aqv0E50piVV2umBhskHGApH/QcE4Hu5MjrluVOGgyhHd5gNqrkB7htyq/0oFDw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=RSGHJaSKeAHiq/thZs6rEZYC/3m7P6G/7V5hokn4V1w=; b=EOGIyeaT85SIqCkJUSxFpDjwIj+wTBPY8SqY/zuPzeTamzEtRjSWsFf+nRBTbFcPTrtVtz7foHRFNpnrYy+Cwa3u0kQ9NooMHkoKg9rBuBVaffm1xZH5pfY5ritWa8t1uUt5+3dVF3hZAO3wRgjt70L9fR4Rw9AKJIGH67qRmlo+Oka7uEY+3Tx2gJTGOBK/d0YP8MvdhZeTP1HAeL8SEsFrOXRzJew/xHQKpeu+85Im8TDraL71rc5vNXsKj2RmMkiElrjpOdwCdF3UeVB0NE9CC9hciUJ3QhnxAWlwPYYsDepOxDUs/Hdi1+f54Yzx6eJqf0IOMoXkT4eaAP7QvQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=trustnetic.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RSGHJaSKeAHiq/thZs6rEZYC/3m7P6G/7V5hokn4V1w=; b=JexcBdYrE+lEMutuGLi4g3kLCXOfrVe6rVUOwZ0FSUFFBtAVUI4pK0IQI0yC6QmqfAUjrBZmkXT22WC+nR7YYOA08TeIIHP9vHcn1k1OlRnSZZfR4utgb7VrxodCRS6dUemfhL6PTEW+afYH1ZASzUmaaat5bVGSRFqj3We065hp6JR+n0yZ6a99jYkUR/8UDS0Vsf0VCJikeGwOQsE9dyVy9/lynWKurmm8UaHafKeakKQ6Psak41kOoUpfgcfy0DYG4fG6nPMpPHc7UNKR+NNzUjCHfnhzN+2zKec+ULtnlu/psuHfXdKpQ7CohHf3vHYj8pbB1ruM86VVKxBRvw== Received: from SN7P220CA0001.NAMP220.PROD.OUTLOOK.COM (2603:10b6:806:123::6) by SA1PR12MB7441.namprd12.prod.outlook.com (2603:10b6:806:2b9::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.28; Wed, 9 Aug 2023 23:52:30 +0000 Received: from SA2PEPF000015C9.namprd03.prod.outlook.com (2603:10b6:806:123:cafe::d0) by SN7P220CA0001.outlook.office365.com (2603:10b6:806:123::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.28 via Frontend Transport; Wed, 9 Aug 2023 23:52:30 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by SA2PEPF000015C9.mail.protection.outlook.com (10.167.241.199) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.20 via Frontend Transport; Wed, 9 Aug 2023 23:52:30 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.5; Wed, 9 Aug 2023 16:52:18 -0700 Received: from nvidia.com (10.126.230.37) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.37; Wed, 9 Aug 2023 16:52:16 -0700 From: Xueming Li To: Jiawen Wu CC: dpdk stable Subject: patch 'net/ngbe: fix link status in no LSC mode' has been queued to stable release 22.11.3 Date: Thu, 10 Aug 2023 07:47:51 +0800 Message-ID: <20230809234930.32424-30-xuemingl@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230809234930.32424-1-xuemingl@nvidia.com> References: <20230625063544.11183-1-xuemingl@nvidia.com> <20230809234930.32424-1-xuemingl@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.126.230.37] X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PEPF000015C9:EE_|SA1PR12MB7441:EE_ X-MS-Office365-Filtering-Correlation-Id: 93fe043a-bd7c-4f8d-1517-08db9933b173 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: xkvY17qWTPCLoN70LYsxmCP4nEk4A66T4QAspGtyJbJc8IN0MtjCn2LdPnvprK2BvmQ2AtsF+6+YDbma6IuhbX7RcvE3H41hK3x1YJ7MH+iZk+F5+nXEfLcb5QzMlCmqlNO2g66R/F2vfC0cceHx1lCzRYuFbi+ONc/VqYIB+do7AyRwqSSL3Nc/4Sabkfpt/XaV43fOM5AEagebaL8Ds0ILoWHbMCfv1BxtOFCmLQvdIpmED+OUi6wKDcsj1zp886aFj4DeyWU+jCgX5SE83M0yuCZ+/7WaG31JRqL1pDyJ3HWy14XRrl5KleBrs69g4Jqhwjjd19CsohB9XWHGkX2rIwCjwQ8wQGSkZJqLiq4CfHBnBznunrbeDZAGa6N+Fwvn5jfqfiCEwtZqs6uXUXsMQN9F1ilKr3RGqPVNZrlBptpzvkUWlW93TYGvuxEkYW/8BMHPYbvb7mJqqc4Tcl5KOzh+Ey6LKrMvF6/H9UVEynA1vWqpFBA3iA83QsIsA3BkQLl+nePJvfylaRdUGezwMgrIFULeE87T9IlU69UAYR7sldX3ZJ3/goiq5bxb0twEUQdTCQCxefpMu7eGWNJWV7WBMycXEyGx/j0eAcNOooDoYFHotP6OFIIdsRFxOtWwmgXUmEBUJEmUY/A2yU3Z84lyRsMI1FOlsC1Yoe9OimocPx09PUq4W54hXdhosPdEYADwJGekl4myUEETY6eeK2vuUiDekv8VpbNOUHB0gsHTn471kWg/r1t3HFD2/Y1TbjknvaA9S1d+L7Pjxw== X-Forefront-Antispam-Report: CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE; SFS:(13230028)(4636009)(136003)(39860400002)(396003)(376002)(346002)(451199021)(82310400008)(1800799006)(186006)(40470700004)(36840700001)(46966006)(36756003)(70586007)(6666004)(478600001)(6916009)(336012)(6286002)(70206006)(16526019)(26005)(53546011)(1076003)(4326008)(2906002)(41300700001)(316002)(356005)(8676002)(5660300002)(8936002)(82740400003)(86362001)(7636003)(966005)(83380400001)(2616005)(426003)(47076005)(36860700001)(7696005)(40480700001)(55016003)(40460700003); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Aug 2023 23:52:30.1141 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 93fe043a-bd7c-4f8d-1517-08db9933b173 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SA2PEPF000015C9.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB7441 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 22.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 08/11/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://git.dpdk.org/dpdk-stable/log/?h=22.11-staging This queued commit can be viewed at: https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=e66f9e3fdfd22a69c9443fc7bf8b613ff0c46cb5 Thanks. Xueming Li --- >From e66f9e3fdfd22a69c9443fc7bf8b613ff0c46cb5 Mon Sep 17 00:00:00 2001 From: Jiawen Wu Date: Wed, 14 Jun 2023 10:34:28 +0800 Subject: [PATCH] net/ngbe: fix link status in no LSC mode Cc: Xueming Li [ upstream commit 21f702d556fabbc50e5e8d43c7ad3dfbe9dac1bd ] When using no LSC mode, device link status is sometimes get incorrectly. Introduce hw->lsc to fix this issue. Fixes: 3d0af7066759 ("net/ngbe: setup PHY link") Fixes: 3518df5774c7 ("net/ngbe: support device start/stop") Signed-off-by: Jiawen Wu --- drivers/net/ngbe/base/ngbe_hw.c | 10 +++++++--- drivers/net/ngbe/base/ngbe_phy_rtl.c | 20 ++++++++++++++++++++ drivers/net/ngbe/base/ngbe_phy_rtl.h | 2 ++ drivers/net/ngbe/base/ngbe_phy_yt.c | 16 +++++++++------- drivers/net/ngbe/base/ngbe_type.h | 1 + drivers/net/ngbe/ngbe_ethdev.c | 2 ++ 6 files changed, 41 insertions(+), 10 deletions(-) diff --git a/drivers/net/ngbe/base/ngbe_hw.c b/drivers/net/ngbe/base/ngbe_hw.c index 283cdca367..27243d85c8 100644 --- a/drivers/net/ngbe/base/ngbe_hw.c +++ b/drivers/net/ngbe/base/ngbe_hw.c @@ -1541,11 +1541,15 @@ s32 ngbe_clear_vfta(struct ngbe_hw *hw) s32 ngbe_check_mac_link_em(struct ngbe_hw *hw, u32 *speed, bool *link_up, bool link_up_wait_to_complete) { - u32 i, reg; + u32 i; s32 status = 0; - reg = rd32(hw, NGBE_GPIOINTSTAT); - wr32(hw, NGBE_GPIOEOI, reg); + if (hw->lsc) { + u32 reg; + + reg = rd32(hw, NGBE_GPIOINTSTAT); + wr32(hw, NGBE_GPIOEOI, reg); + } if (link_up_wait_to_complete) { for (i = 0; i < hw->mac.max_link_up_time; i++) { diff --git a/drivers/net/ngbe/base/ngbe_phy_rtl.c b/drivers/net/ngbe/base/ngbe_phy_rtl.c index 88bacec114..b0eb6c97c0 100644 --- a/drivers/net/ngbe/base/ngbe_phy_rtl.c +++ b/drivers/net/ngbe/base/ngbe_phy_rtl.c @@ -392,6 +392,26 @@ s32 ngbe_check_phy_link_rtl(struct ngbe_hw *hw, u32 *speed, bool *link_up) *speed = NGBE_LINK_SPEED_10M_FULL; } + if (hw->lsc) + return status; + + /* + * Because of the slow speed of getting link state, RTL_PHYSR + * may still be up while the actual link state is down. + * So we read RTL_GBSR to get accurate state when speed is 1G + * in polling mode. + */ + if (*speed == NGBE_LINK_SPEED_1GB_FULL) { + status = hw->phy.read_reg(hw, RTL_GBSR, + RTL_DEV_ZERO, &phy_data); + phy_link = phy_data & RTL_GBSR_LRS; + + /* Only need to detect link down */ + if (!phy_link) { + *link_up = false; + *speed = NGBE_LINK_SPEED_UNKNOWN; + } + } return status; } diff --git a/drivers/net/ngbe/base/ngbe_phy_rtl.h b/drivers/net/ngbe/base/ngbe_phy_rtl.h index b2fbc4f74d..6093ee7d5c 100644 --- a/drivers/net/ngbe/base/ngbe_phy_rtl.h +++ b/drivers/net/ngbe/base/ngbe_phy_rtl.h @@ -35,6 +35,8 @@ #define RTL_ANLPAR_LP MS16(10, 0x3) #define RTL_GBCR 0x9 #define RTL_GBCR_1000F MS16(9, 0x1) +#define RTL_GBSR 0xA +#define RTL_GBSR_LRS MS16(13, 0x1) /* Page 0xa42*/ #define RTL_GSR 0x10 #define RTL_GSR_ST MS16(0, 0x7) diff --git a/drivers/net/ngbe/base/ngbe_phy_yt.c b/drivers/net/ngbe/base/ngbe_phy_yt.c index 726d6c8ef5..754faadd6a 100644 --- a/drivers/net/ngbe/base/ngbe_phy_yt.c +++ b/drivers/net/ngbe/base/ngbe_phy_yt.c @@ -102,13 +102,15 @@ s32 ngbe_init_phy_yt(struct ngbe_hw *hw) { rte_spinlock_init(&hw->phy_lock); - rte_spinlock_lock(&hw->phy_lock); - /* close sds area register */ - ngbe_write_phy_reg_ext_yt(hw, YT_SMI_PHY, 0, 0); - /* enable interrupts */ - ngbe_write_phy_reg_mdi(hw, YT_INTR, 0, - YT_INTR_ENA_MASK | YT_SDS_INTR_ENA_MASK); - rte_spinlock_unlock(&hw->phy_lock); + if (hw->lsc) { + rte_spinlock_lock(&hw->phy_lock); + /* close sds area register */ + ngbe_write_phy_reg_ext_yt(hw, YT_SMI_PHY, 0, 0); + /* enable interrupts */ + ngbe_write_phy_reg_mdi(hw, YT_INTR, 0, + YT_INTR_ENA_MASK | YT_SDS_INTR_ENA_MASK); + rte_spinlock_unlock(&hw->phy_lock); + } hw->phy.set_phy_power(hw, false); diff --git a/drivers/net/ngbe/base/ngbe_type.h b/drivers/net/ngbe/base/ngbe_type.h index 05804eeab7..37be288a74 100644 --- a/drivers/net/ngbe/base/ngbe_type.h +++ b/drivers/net/ngbe/base/ngbe_type.h @@ -431,6 +431,7 @@ struct ngbe_hw { bool offset_loaded; bool is_pf; bool gpio_ctl; + bool lsc; u32 led_conf; bool init_phy; rte_spinlock_t phy_lock; diff --git a/drivers/net/ngbe/ngbe_ethdev.c b/drivers/net/ngbe/ngbe_ethdev.c index f719172749..30952a5632 100644 --- a/drivers/net/ngbe/ngbe_ethdev.c +++ b/drivers/net/ngbe/ngbe_ethdev.c @@ -1052,6 +1052,8 @@ ngbe_dev_start(struct rte_eth_dev *dev) if (hw->is_pf && dev->data->dev_conf.lpbk_mode) goto skip_link_setup; + hw->lsc = dev->data->dev_conf.intr_conf.lsc; + err = hw->mac.check_link(hw, &speed, &link_up, 0); if (err != 0) goto error; -- 2.25.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2023-08-09 21:51:19.016576000 +0800 +++ 0029-net-ngbe-fix-link-status-in-no-LSC-mode.patch 2023-08-09 21:51:18.154352000 +0800 @@ -1 +1 @@ -From 21f702d556fabbc50e5e8d43c7ad3dfbe9dac1bd Mon Sep 17 00:00:00 2001 +From e66f9e3fdfd22a69c9443fc7bf8b613ff0c46cb5 Mon Sep 17 00:00:00 2001 @@ -4,0 +5,3 @@ +Cc: Xueming Li + +[ upstream commit 21f702d556fabbc50e5e8d43c7ad3dfbe9dac1bd ] @@ -11 +13,0 @@ -Cc: stable@dpdk.org @@ -130 +132 @@ -index 836ecfa2da..317ad6999c 100644 +index f719172749..30952a5632 100644