From patchwork Mon Dec 11 03:08:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 134998 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id CDDE9436C3; Mon, 11 Dec 2023 04:09:54 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 79CF340E13; Mon, 11 Dec 2023 04:09:30 +0100 (CET) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2135.outbound.protection.outlook.com [40.107.243.135]) by mails.dpdk.org (Postfix) with ESMTP id 6E4DD40DCB for ; Mon, 11 Dec 2023 04:09:27 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kSv5lxth8fzBq6UHHHyrd1pwXDSQRmf7/NIuxSm4Fw5LQiW9UhNaKWmRvFBpK5s70XhhWSz3lmrRT4t1VQxKbdNoQ+OQ2wDG9/FTWdjBWRis9oDOMrfmSQ8EJIVSQSQpk5Jrlq5ws8ziqY8HU2iEuccqzti94vhMp8ADXVxAS3NNIRGm9R9Hul4lTumpHBQBWhdmaNYzzP22GmsVDYnUXUmQ19uRB2aNH/ak5YvgJKWcQ30I87NMS03nMsSlFHEkO3LycioowkqEgnNEVwFFsTCIHnl+M51eBuUj/kcQFSdqBQYsS5jg4AbTZSDx6C8z+lygrl6IPe7EhYMGht6vEg== 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=rtepOQN/A5Z+1I8Tc41ZkmRL0AJd36e1ySLqB0MfS1k=; b=fF8vZ+8wOD/S5cR6fmv+6P2IC+y8eWRkq05fuKEffs+fdLcnaXvQMs0E7UuLBfvALOW15iOapSyr96wHmW54e5dbE8iptuf+fgQJXhIZWBwQo3phXqBzWv0NFWP2Oqy4B5cp8RIFRG32pBnNtK04IBMmD60YRWTVLkl0XJrpuqkr5kXE2I247vcpUpgZtj4KJZTQqSGRFch2LC3X3t4vui1gh68zjBG2QPlr3HgAGwETMO3xeSmLiwTYLbURqlrZ44c3DKJLkqwElCfVa0xRO62D8O3aSHBU3P/N56Hc+bUMWQ+sorw1hQ7fwSxUeAnAP+LG+2INsotA6HseiDKhIA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com; dkim=pass header.d=corigine.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=rtepOQN/A5Z+1I8Tc41ZkmRL0AJd36e1ySLqB0MfS1k=; b=daDV/J6bYU0gCahzAZA3pB9ZBGOuwACvTHIjFM5RL2QgC0Inu/vJpOQEAPoW6nGn1MEOAF1wjx76OkOZR65hOImEIH7H645SYQdiwNSV8e/GckfNKjFRd1ylKLw+EFf+6mgur9Z2dc3iOM8kIX7ciO7sgslz60n8D8XxkQtCLvo= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) by PH0PR13MB5666.namprd13.prod.outlook.com (2603:10b6:510:111::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32; Mon, 11 Dec 2023 03:09:26 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::45b3:d83c:cff2:4a1b]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::45b3:d83c:cff2:4a1b%6]) with mapi id 15.20.7068.031; Mon, 11 Dec 2023 03:09:26 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Zerun Fu , Long Wu , Peng Zhang , Chaoyong He Subject: [PATCH 4/7] net/nfp: modify the link update function Date: Mon, 11 Dec 2023 11:08:55 +0800 Message-Id: <20231211030858.1693240-5-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20231211030858.1693240-1-chaoyong.he@corigine.com> References: <20231211030858.1693240-1-chaoyong.he@corigine.com> X-ClientProxiedBy: SJ0PR13CA0166.namprd13.prod.outlook.com (2603:10b6:a03:2c7::21) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|PH0PR13MB5666:EE_ X-MS-Office365-Filtering-Correlation-Id: 5605b60f-cc7d-4e52-bce7-08dbf9f694e0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: GnoIi74XfANMv/3NmrjW+fZEiGPs8y/HKBi5GnRKR6XCnPvNWSDOfUxefJCeNGffDnJTlCk20JNENAw3VQKyPfFHxhgi73RkocVfHXkdQPTYNabrSmn4NPbWP0sKCUnHCAl50Joj0zruMF6kRP1Fq0UAoievkX10+lBpPI1N1I5JTV76cycmDcVegvUQqZ2PGrsXOY2ksgKRCEX4sOtJKlwgpVUP3DonALgS4ecpaSWK5V/Uai20hRALFGOnjyx/XWenY0vgQPGOgZSnksdZsF8rIYA5NqY9CIWyvz3iR9hX+NPrOd8OomcXNQiLm2Yfyd7CTOj2XXFQVU8mfcnyEbXDBLxZGJD09cjtpeGIgVv8GVT37EMxF8LHhI8uBt+ZSs/r24seFx8+0sES/A/vp1dkfYFo4/R9YpUlIzhuFTk57J3WgUip1h86mgXmBATr6Ce6MeQFSfsFz0dWj13aaf1GtpoCCxc3WRQH0G8TTJ1NhbAs151FBNlbsfIWIQo3uJI1JnZGUg3SoX9J/umGbFwSYdy+sVLpWiN/futgwC++wmk93aZ/nlRLAes/zVBJHN0Vrj48WZmxWWe581b6LGO7//YNV5L+2z4zA5B4m/3KPNypxjofd+ylEz1KSeegX4GVvJHJeYgAFMdQovNfEDjzeGhi7Q0Bn0D42W9/KBs= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(39830400003)(136003)(376002)(396003)(346002)(366004)(230922051799003)(451199024)(1800799012)(186009)(64100799003)(41300700001)(15650500001)(5660300002)(38350700005)(2906002)(6512007)(6506007)(107886003)(2616005)(1076003)(6666004)(52116002)(36756003)(478600001)(6486002)(38100700002)(83380400001)(26005)(8936002)(8676002)(4326008)(86362001)(6916009)(66476007)(66556008)(54906003)(316002)(66946007)(44832011); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Omcn9vbPgDC8mFeL9k/ypB71h1l8WSNYtlwaIVvYY9HOLAeTpO1pLWXFeIibAUnmW6iXNlb05xH5XTepOfBdxvU5NBXyoXVss9z2XQGCgfElPdLG+xwRxfmpMMDzYbB7IvJ6TFWFvt1J37ta1H7id8aIcHtTpGbYsuaOouS3U86acOWyO0+bQpTuN7XZDOkG/CyZeVUQMbZo9QOJpkgYQgRjxO2T2vpfWXr9rPUNABUNh4YZk3HrkU1YF0Lua4pGKwiyXKvR3dZdKgwi/I9L5M+KZ2U8cD8kUqmZ74m2eBYM5cqUsjNb2PUJMEvTNZ7agFzI2QxN01cowU/YfQMvFlmxguDYajtkin9E860GxGLsLzWN+5prczET9esoOc+q+pyMxlV7EqtS+Wsp22by5+GOOPuwn5xgsnZyyw5Jgk9GivM9/pvK4XXC+ai1WEpGpoLoCGRxSDRmySY6OKWmXHAmLj1QXVylOMWg1y5GT3O8b/gpgVOy5GB7ArR3w0YhFohnxVnqM5UJ24V2g3nHtCNrqCOGaiOlRT/P1AOWbHwsPJxR4fwj9Urlc/33SPsn7b51+FuyaFFjelF1hDnwbaJj2XFTL5cFQKUUmoTaeUhmzSQhO4/gI71Lpnv46pKuNVoU36OWnpLW+MpK8YK5uyaxFgEwNsUKoIxPO7y9phzo1y3zXVxae9btV0HjHoQKlGs1Diewo24p4tdprWtC5RADRJNrD+8mqCiQDCDcMP+hw+UpNIeCGSGfMZYbZVFPuBuY9yaovFQfjpQxQBL24Zu7TbeWirpHQJys0qsrf4+VxkmYkiFShrtSHP+LWZ3Z69o/RmXnNEDpgjqdEYOplnY85D1SDkEWuOpHZM+U15qaewRkL1vosJMrLR2IWXl7B2J3BEYlwY1h5TADcyuSQJUa1jH3YcNvNW/KtniOpVaImJBnwYPb8Dc6IIM4wKolUPChmV8KDD0rGWOejO3JORkZx9597hsKQimY4rsbE55F+MBIbWRxDqtMIxTGPicaNZM0hJ+yfYU79K00q6E76ZKyn09LzcoBIMHDdbrrCzSoAnk6X+DydTkU68xmdHpQccz6ATpWIrqnEvup64EteUqRSKlsZJrJ+CFH1Hfh44QKKog2OA4jxpbTS+ZKdzQqwg5uya6eA1/2aOoDAC0WK2Enr80uRGEmxpnaomBW5VO1/yYy54nNFXOzgHr9cQMkoboQpoQtUpNfCEQE9tUwLG4cLxOTYRzGLsBzFUYu6dc5uDfODbpRGYFw34WBpoiWnw9NG/GNW4lOE0eS+MsJVxZmyEvK90RuvwORT4Aut+v3nnpGoZE71Lhy2V0IQeUSIcp0gwl8PHZ8TCUw5OfqGejMH1L42Wx7Q8xdY20/SaFpQzdIneIZ9XwXjvERq5ZQeKIXeleAKeRY8l6TEzPRJmyyevQBiTRgof1pRpjsTqVr23gGvEDg/c+Zxk2vRcZ3KSxDF3JItkej6+WPHJ8Ci6tj/pw/tCZLRUMvzBoIMJjHmhxTK8QOm5B2zJQDyHDd2ruV++a0QImkQ3h2uB3A9N79R+nVrWdnKMfjv1YNjOqVgzWPSvwNIN52+Kgv+zfbJ1FpDFFMo62FESnbHE8eHA== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5605b60f-cc7d-4e52-bce7-08dbf9f694e0 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2023 03:09:26.0950 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fe128f2c-073b-4c20-818e-7246a585940c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: lxlW3Jc0EFN3Iohq49CICeT4miW0DSDmsa14c530xdPC81Dx2lfCfDtiVp5c3j3kzXHR2RbFNuQrNKoKk+IYh3UVgeTAOREuSgKSbgmdMsU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR13MB5666 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Zerun Fu Modify the link update function to get the new port speed state after the port speed is changed, including the new speed and whether the auto negotiation mode is enabled. Signed-off-by: Zerun Fu Reviewed-by: Long Wu Reviewed-by: Peng Zhang Reviewed-by: Chaoyong He --- drivers/net/nfp/nfp_net_common.c | 59 ++++++++++++++++++++++++------- drivers/net/nfp/nfpcore/nfp_nsp.c | 4 +-- 2 files changed, 48 insertions(+), 15 deletions(-) diff --git a/drivers/net/nfp/nfp_net_common.c b/drivers/net/nfp/nfp_net_common.c index ed410a7313..1658cc7d3c 100644 --- a/drivers/net/nfp/nfp_net_common.c +++ b/drivers/net/nfp/nfp_net_common.c @@ -643,6 +643,46 @@ nfp_net_allmulticast_disable(struct rte_eth_dev *dev) return nfp_net_set_allmulticast_mode(dev, false); } +static int +nfp_net_speed_aneg_update(struct rte_eth_dev *dev, + struct nfp_net_hw *hw, + struct rte_eth_link *link) +{ + uint32_t i; + uint32_t speed; + struct nfp_eth_table *nfp_eth_table; + struct nfp_eth_table_port *eth_port; + + /* Compare whether the current status has changed. */ + if (dev->data->dev_link.link_status != link->link_status) { + nfp_eth_table = nfp_eth_read_ports(hw->cpp); + if (nfp_eth_table == NULL) { + PMD_DRV_LOG(DEBUG, "Error reading NFP ethernet table."); + return -EIO; + } + + hw->pf_dev->nfp_eth_table->ports[hw->idx] = nfp_eth_table->ports[hw->idx]; + free(nfp_eth_table); + } + + nfp_eth_table = hw->pf_dev->nfp_eth_table; + eth_port = &nfp_eth_table->ports[hw->idx]; + speed = eth_port->speed; + + for (i = 0; i < RTE_DIM(nfp_net_link_speed_nfp2rte); i++) { + if (nfp_net_link_speed_nfp2rte[i] == speed) { + link->link_speed = speed; + break; + } + } + + if (dev->data->dev_conf.link_speeds == RTE_ETH_LINK_SPEED_AUTONEG && + eth_port->supp_aneg) + link->link_autoneg = RTE_ETH_LINK_AUTONEG; + + return 0; +} + int nfp_net_link_update_common(struct rte_eth_dev *dev, struct nfp_net_hw *hw, @@ -650,23 +690,14 @@ nfp_net_link_update_common(struct rte_eth_dev *dev, uint32_t link_status) { int ret; - uint32_t i; uint32_t nn_link_status; - struct nfp_eth_table *nfp_eth_table; - - link->link_speed = RTE_ETH_SPEED_NUM_NONE; if (link->link_status == RTE_ETH_LINK_UP) { if (hw->pf_dev != NULL) { - nfp_eth_table = hw->pf_dev->nfp_eth_table; - if (nfp_eth_table != NULL) { - uint32_t speed = nfp_eth_table->ports[hw->idx].speed; - for (i = 0; i < RTE_DIM(nfp_net_link_speed_nfp2rte); i++) { - if (nfp_net_link_speed_nfp2rte[i] == speed) { - link->link_speed = speed; - break; - } - } + ret = nfp_net_speed_aneg_update(dev, hw, link); + if (ret != 0) { + PMD_DRV_LOG(DEBUG, "Failed to update speed and aneg."); + return ret; } } else { /* @@ -718,6 +749,8 @@ nfp_net_link_update(struct rte_eth_dev *dev, link.link_duplex = RTE_ETH_LINK_FULL_DUPLEX; ret = nfp_net_link_update_common(dev, hw, &link, nn_link_status); + if (ret == -EIO) + return ret; /* * Notify the port to update the speed value in the CTRL BAR from NSP. diff --git a/drivers/net/nfp/nfpcore/nfp_nsp.c b/drivers/net/nfp/nfpcore/nfp_nsp.c index f67572be87..6a2ba709ab 100644 --- a/drivers/net/nfp/nfpcore/nfp_nsp.c +++ b/drivers/net/nfp/nfpcore/nfp_nsp.c @@ -221,7 +221,7 @@ nfp_nsp_check(struct nfp_nsp *state) } if ((reg & NSP_STATUS_BUSY) != 0) { - PMD_DRV_LOG(ERR, "Service processor busy!"); + PMD_DRV_LOG(DEBUG, "Service processor busy!"); return -EBUSY; } @@ -258,7 +258,7 @@ nfp_nsp_open(struct nfp_cpp *cpp) err = nfp_nsp_check(state); if (err != 0) { - PMD_DRV_LOG(ERR, "NSP - check failed"); + PMD_DRV_LOG(DEBUG, "NSP - check failed"); nfp_nsp_close(state); return NULL; }