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 BF7B74320F; Fri, 27 Oct 2023 05:01:49 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 032FC42DDE; Fri, 27 Oct 2023 05:00:54 +0200 (CEST) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2130.outbound.protection.outlook.com [40.107.244.130]) by mails.dpdk.org (Postfix) with ESMTP id A803740291 for ; Fri, 27 Oct 2023 05:00:41 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EI79rC9FJV6EKQFSo+8HH56rP2apDIY9BaumZf48Mz8Ga84yhQZQtjUaNr65zWhc47K+l0SJcLG+L6r8X15GQUBzoIgP6Bvx9cgFmT+nZyvZ7Ilv4OiMTlz+p/qOlPdlC5LZKTdOb/m7J+U46srFl7j817BBwTIC9ZZMRljFTYzsXKVaqgxXZ1XnyxEJSGW03jX0qefjpM9zXf76wyDjs1JxFEZJyhGS6TFXXGGEANtZi/b/ipENwd/7NcmMQW0f5PhV40H0F+JdMqYcvqM3o2//q1QPW2iKfDzq6yBETi4PK5mCn9flvEIgkrRg+bBvvOKTXIjQZIFkZ3k9ANicrw== 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=RRhMHhn0YXvamlaXgWH2i+WpWihtdLcmMZwtXwxDeso=; b=DokS1Ju9oa1R47YzBqIWRCyCoqbokCz4e3rFUtKSbT5SxdgDRE6F2+8No9+wdMbt4waK8IxsyNUTUjSpA/DsqAwgE4xSIxiqUHIfmpUumueebPwJx8Qi66YUr774cP+a8CtlqDUdm/EYIO/DEAWWUM9aCx9bwRaPxdE2anuE86AjLg0hjGMffsmbzBC2NnlvikGngfxFZaUjpUqe47Y/ZiYrtOv4rRfaieFbmgyosjgyf7ELlBOKEtIomwWJoZzOov9fsaqIYbk2KLyFhUWhuGr8jmyBqnHg/xTHnbtGhjlVsTA2/m1ZFJxOvPUDq4FyZfC52almj7v6wT0L6ZHmzw== 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=RRhMHhn0YXvamlaXgWH2i+WpWihtdLcmMZwtXwxDeso=; b=OOnvv/aNFYZHTJNx8kHPmsuBZ4hQogaNe060JuIAwT+Y1XH1cX0C2GUx5TymCKfuO7hO8XkosgmJueCPJ4X6kj+4mKkv6kOUIqYIe33L1uqjUZdtrusBtEoxrp5jBNpP3v/rZH97Quykc0ub6Qmb8JwPhvCdiHfkkjjx1ibGTfk= 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 DM6PR13MB4493.namprd13.prod.outlook.com (2603:10b6:5:1b9::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6907.33; Fri, 27 Oct 2023 03:00:39 +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.6933.022; Fri, 27 Oct 2023 03:00:39 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Chaoyong He , Long Wu , Peng Zhang Subject: [PATCH v4 08/24] net/nfp: extract ctrl data field Date: Fri, 27 Oct 2023 10:59:45 +0800 Message-Id: <20231027030001.602639-9-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20231027030001.602639-1-chaoyong.he@corigine.com> References: <20231026064324.177531-1-chaoyong.he@corigine.com> <20231027030001.602639-1-chaoyong.he@corigine.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: BYAPR08CA0065.namprd08.prod.outlook.com (2603:10b6:a03:117::42) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|DM6PR13MB4493:EE_ X-MS-Office365-Filtering-Correlation-Id: edb3c1f9-c859-4bc0-91b7-08dbd698e697 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8gJFyrcd+zNTx3nwcCVv9SKVix4EBH8DivuNfc1K1+LBi0sXtxBLf5cn6Oi2crI3KhHgOyydng0qFWmi17VN+blIJvIEcGQk5yfwi28Z70kAA7O0GrezuH8gYTKrG1RzLszNw5Fw2Pruh/1IWXRKPtgdINaYwSvaxELTL5VaiP4R71lprg+JfgYfmyL+9YP6JnXWySkVMdeh00bRrNN9+nJCLlSiMYM7vFbx9wmfZG6LOliGpvH/xB5nc4hzaAc+s/4kJxd2tARkkidUF5JCtwsOXmHY91/znkfVkaSyxZIHOBUr/7Ltv8Z+Q93dGwKLlDvptQaSaRg4iagWOwy3UlJCMUsSY18cx5U2ZMnCQsQvhDnyhY7sfyMcAzbl8MXleoOpA5mEGuWq/SOxIfGEedINKQXFvry9EP2DM8rMpTm2Xe1EWjW8GI9wIziHMVntWFwxA1IWV58i6NbG7WOhrUOrUNcjDUcJ5Jl371dESYOX7dVs+eGjKyf6rHf0MeYXCRrCW2v8SfDigh1jPgqfI4QwDMju8cwW+UY7bOqTT8KGtldbAM9xIo2KG0rewSqczjovctl76FD53D3/+OngI568mrafrBzP6o4s908HStG0GxoObeHEN7JjGqSTA4EjzDHjQLSYzzHCe0mDcal9EFUU8u7lyezb/rZ5In9EUq4= 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)(396003)(136003)(366004)(346002)(376002)(39840400004)(230922051799003)(186009)(1800799009)(64100799003)(451199024)(38350700005)(83380400001)(30864003)(4326008)(52116002)(2906002)(38100700002)(107886003)(44832011)(8936002)(26005)(2616005)(1076003)(36756003)(8676002)(54906003)(6666004)(5660300002)(66476007)(6916009)(6506007)(316002)(6486002)(6512007)(41300700001)(66556008)(66946007)(86362001)(478600001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?w7EvsL5plTDPqnBji52hDZJZ7Fa3VQjdybFE6w+FkWERgMmbzw9wVKT/idVR?= =?us-ascii?Q?KOTBuGyfLiQDFrcRjqouUb17oO/ONVO2Cf1stA8Udbu1SS925bUpU+uWHzcE?= =?us-ascii?Q?GKJjxsN65YG5PwUdNUhR28jHGOHdBXGVsDeGSICDdYwJOmhIb1tFXMIuJUEc?= =?us-ascii?Q?gtPlV2zsZAS4DmchfQ3B6IywH1cukdOHY7MXd/Hxo/EfJKygqzojUUxuvgC2?= =?us-ascii?Q?w+JcmHDULDwUIDOxGYn69GQcLzy4LwtALWNvJQ5z2hgV6GuXGRqea1Zl0H4k?= =?us-ascii?Q?nQ8zD52oyKXEWdjUaEAuIf0ufySc0LYPu8ClgAjU8U/ZT+pczTdDEMSnXpLz?= =?us-ascii?Q?x6Qs879oc/FUh7+0BqEWxcJh4joCjeuWM3Q7xI3uHh4T6yJLFxe0IDaKaXAY?= =?us-ascii?Q?chetywSHA7okufd6TVnrUsfGY8b3Bici0kbdKj23qQVJ67nXfmm2xrXOvLhh?= =?us-ascii?Q?Mgz+5XKiZSFqQmqa5/JmtuKnzwEj36bJUm60W3e+oaT/XKct5wafW8goUVqP?= =?us-ascii?Q?dUeREikJupvxlLaIFDRna/itbO7i9dN9Kclu4EQnxza5T1dStsF0JMueYT1+?= =?us-ascii?Q?tb1AVaJJgE58f2ikxDCaj4o00cO1Aqw1f/VsHBRXXheJDEeW9+mRZYLs8Cnq?= =?us-ascii?Q?o2lc0PLMLwxpKGwWw7HbS3uObfQ6oh4ZZmIdvJKkNkMHlY4O7K/pz5/Brgyb?= =?us-ascii?Q?fMhICnY+Bs9F18u7h0GFbzhCy/x76J1Lw6cVGp1g7J5KYOBXAgMm4CJCsp1M?= =?us-ascii?Q?+rNPGQAIJzxyMr4stPENy6Tj+f33pr8a1mysb+4Jh9zHF7RZGCoLFiXRGNzx?= =?us-ascii?Q?bP/KUOc7VAP4aDTpxbPDCxq/Fc++3Kfv/LHS/0oPa4/dhHo6DoRI4NFJOP9L?= =?us-ascii?Q?8sWTK95NQP+3G2Z+MOlz5YZ0T5K9w0tweBqihVVkbPlAgBkX/uLCcNOKzF8n?= =?us-ascii?Q?A440KMKlHbVys453WZUVwVeC6LUkTgxqP5d5zaFLRF5mTGlyDOKbN6bxuRch?= =?us-ascii?Q?yQWHcVqaJmsyBO3rO9CDtbFYwaZvg20aaxQkvMoZFByTWeI9F4e8a+wYLfUK?= =?us-ascii?Q?rd8GiAi5KEqXeIVDpaQW61hpmN/YAYovJqFo5OHNLIHZpw1pOaPLlBz5PiAa?= =?us-ascii?Q?ZMU2MOHcgnqSzDHQ5UszHApJ1emKEp2NjdnkZm36YuBDKuVnYDYWioJuKI9M?= =?us-ascii?Q?qzfrg2azsqgqfqnAIbwHEJJAjbnyHxMnHnF6HdN7ufQG/7vvdzZpF+zjNBix?= =?us-ascii?Q?HjI1Di9zGUnTk878JlNk41pZY/N/iQw5evlMdGprAo5g/er7ardP+YA1xWZI?= =?us-ascii?Q?WS1ouJ87/cg85wHM5Uk7SUz+7kkUgQSE156kaI4Zpv4vQ/h7ZsryjKVyXJVu?= =?us-ascii?Q?JUCPWa7APNHinYjHsgTFnj2JqRK+GxYNDM2k2llJTgRZl10qDSL52aQLeLQh?= =?us-ascii?Q?RqUSD73PD/FgGmsuD9ruknXxXvGizytVWkK4rX2iBENHRsNyIWFp+ZNUjLXU?= =?us-ascii?Q?juVheWkg1+uK0uAVTqO7k4D8g5XC52Ep08gNVhF6poiOB5oM5wlWRICB8iT1?= =?us-ascii?Q?yy0PU8MpOVXmnf8PMT2YsdJmrAAITM3CWcxwSOoZeCz0vh3Bb3ZVspsS+63J?= =?us-ascii?Q?qA=3D=3D?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: edb3c1f9-c859-4bc0-91b7-08dbd698e697 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Oct 2023 03:00:39.8073 (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: L22k0FMB2897/D5XnEzYPVmgNg+H5tPvhy14uRDNhlJ1oKb4MQFNvAvIl1FplMiqEJHx6bq5mDcBgnPXoVixxQhekhkJrHkYICsOm2q00+A= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR13MB4493 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 Extract the 'ctrl' data filed into the super class, prepare for the upcoming common library. Signed-off-by: Chaoyong He Reviewed-by: Long Wu Reviewed-by: Peng Zhang --- drivers/net/nfp/flower/nfp_flower.c | 8 ++--- drivers/net/nfp/nfd3/nfp_nfd3_dp.c | 2 +- drivers/net/nfp/nfdk/nfp_nfdk_dp.c | 2 +- drivers/net/nfp/nfp_ethdev.c | 4 ++- drivers/net/nfp/nfp_ethdev_vf.c | 2 +- drivers/net/nfp/nfp_net_common.c | 46 ++++++++++++++--------------- drivers/net/nfp/nfp_net_common.h | 5 ++-- drivers/net/nfp/nfp_rxtx.c | 12 ++++---- 8 files changed, 41 insertions(+), 40 deletions(-) diff --git a/drivers/net/nfp/flower/nfp_flower.c b/drivers/net/nfp/flower/nfp_flower.c index c8455e0241..8bb5914888 100644 --- a/drivers/net/nfp/flower/nfp_flower.c +++ b/drivers/net/nfp/flower/nfp_flower.c @@ -61,7 +61,7 @@ nfp_pf_repr_disable_queues(struct rte_eth_dev *dev) nn_cfg_writeq(hw, NFP_NET_CFG_TXRS_ENABLE, 0); nn_cfg_writeq(hw, NFP_NET_CFG_RXRS_ENABLE, 0); - new_ctrl = hw->ctrl & ~NFP_NET_CFG_CTRL_ENABLE; + new_ctrl = hw->super.ctrl & ~NFP_NET_CFG_CTRL_ENABLE; update = NFP_NET_CFG_UPDATE_GEN | NFP_NET_CFG_UPDATE_RING | NFP_NET_CFG_UPDATE_MSIX; @@ -72,7 +72,7 @@ nfp_pf_repr_disable_queues(struct rte_eth_dev *dev) if (nfp_net_reconfig(hw, new_ctrl, update) != 0) return; - hw->ctrl = new_ctrl; + hw->super.ctrl = new_ctrl; } int @@ -123,7 +123,7 @@ nfp_flower_pf_start(struct rte_eth_dev *dev) return -EIO; } - hw->ctrl = new_ctrl; + hw->super.ctrl = new_ctrl; /* Setup the freelist ring */ ret = nfp_net_rx_freelist_setup(dev); @@ -721,7 +721,7 @@ nfp_flower_start_ctrl_vnic(struct nfp_net_hw *hw) return -EIO; } - hw->ctrl = new_ctrl; + hw->super.ctrl = new_ctrl; /* Setup the freelist ring */ ret = nfp_net_rx_freelist_setup(dev); diff --git a/drivers/net/nfp/nfd3/nfp_nfd3_dp.c b/drivers/net/nfp/nfd3/nfp_nfd3_dp.c index bbf4530ae9..3045533857 100644 --- a/drivers/net/nfp/nfd3/nfp_nfd3_dp.c +++ b/drivers/net/nfp/nfd3/nfp_nfd3_dp.c @@ -154,7 +154,7 @@ nfp_net_nfd3_set_meta_data(struct nfp_net_meta_raw *meta_data, cap_extend = hw->super.cap_ext; if ((pkt->ol_flags & RTE_MBUF_F_TX_VLAN) != 0 && - (hw->ctrl & NFP_NET_CFG_CTRL_TXVLAN_V2) != 0) { + (hw->super.ctrl & NFP_NET_CFG_CTRL_TXVLAN_V2) != 0) { if (meta_data->length == 0) meta_data->length = NFP_NET_META_HEADER_SIZE; meta_data->length += NFP_NET_META_FIELD_SIZE; diff --git a/drivers/net/nfp/nfdk/nfp_nfdk_dp.c b/drivers/net/nfp/nfdk/nfp_nfdk_dp.c index 807666686f..63421ba796 100644 --- a/drivers/net/nfp/nfdk/nfp_nfdk_dp.c +++ b/drivers/net/nfp/nfdk/nfp_nfdk_dp.c @@ -187,7 +187,7 @@ nfp_net_nfdk_set_meta_data(struct rte_mbuf *pkt, cap_extend = hw->super.cap_ext; if ((pkt->ol_flags & RTE_MBUF_F_TX_VLAN) != 0 && - (hw->ctrl & NFP_NET_CFG_CTRL_TXVLAN_V2) != 0) { + (hw->super.ctrl & NFP_NET_CFG_CTRL_TXVLAN_V2) != 0) { if (meta_data.length == 0) meta_data.length = NFP_NET_META_HEADER_SIZE; meta_data.length += NFP_NET_META_FIELD_SIZE; diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index b7c60b642f..0f6f97be8e 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -152,6 +152,8 @@ nfp_net_start(struct rte_eth_dev *dev) if (nfp_net_ext_reconfig(hw, ctrl_extend, update) != 0) return -EIO; + hw->super.ctrl_ext = ctrl_extend; + /* * Allocating rte mbufs for configured rx queues. * This requires queues being enabled before. @@ -167,7 +169,7 @@ nfp_net_start(struct rte_eth_dev *dev) else nfp_eth_set_configured(dev->process_private, hw->nfp_idx, 1); - hw->ctrl = new_ctrl; + hw->super.ctrl = new_ctrl; for (i = 0; i < dev->data->nb_rx_queues; i++) dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED; diff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c index 641fed6fcf..684968903c 100644 --- a/drivers/net/nfp/nfp_ethdev_vf.c +++ b/drivers/net/nfp/nfp_ethdev_vf.c @@ -110,7 +110,7 @@ nfp_netvf_start(struct rte_eth_dev *dev) goto error; } - hw->ctrl = new_ctrl; + hw->super.ctrl = new_ctrl; for (i = 0; i < dev->data->nb_rx_queues; i++) dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED; diff --git a/drivers/net/nfp/nfp_net_common.c b/drivers/net/nfp/nfp_net_common.c index 29f836c31e..058260bda3 100644 --- a/drivers/net/nfp/nfp_net_common.c +++ b/drivers/net/nfp/nfp_net_common.c @@ -500,7 +500,7 @@ nfp_net_disable_queues(struct rte_eth_dev *dev) nn_cfg_writeq(hw, NFP_NET_CFG_TXRS_ENABLE, 0); nn_cfg_writeq(hw, NFP_NET_CFG_RXRS_ENABLE, 0); - new_ctrl = hw->ctrl & ~NFP_NET_CFG_CTRL_ENABLE; + new_ctrl = hw->super.ctrl & ~NFP_NET_CFG_CTRL_ENABLE; update = NFP_NET_CFG_UPDATE_GEN | NFP_NET_CFG_UPDATE_RING | NFP_NET_CFG_UPDATE_MSIX; @@ -512,7 +512,7 @@ nfp_net_disable_queues(struct rte_eth_dev *dev) if (nfp_net_reconfig(hw, new_ctrl, update) != 0) return; - hw->ctrl = new_ctrl; + hw->super.ctrl = new_ctrl; } void @@ -553,7 +553,7 @@ nfp_net_set_mac_addr(struct rte_eth_dev *dev, struct nfp_net_hw *hw; hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private); - if ((hw->ctrl & NFP_NET_CFG_CTRL_ENABLE) != 0 && + if ((hw->super.ctrl & NFP_NET_CFG_CTRL_ENABLE) != 0 && (hw->super.cap & NFP_NET_CFG_CTRL_LIVE_ADDR) == 0) { PMD_DRV_LOG(ERR, "MAC address unable to change when port enabled"); return -EBUSY; @@ -563,8 +563,8 @@ nfp_net_set_mac_addr(struct rte_eth_dev *dev, nfp_net_write_mac(hw, (uint8_t *)mac_addr); update = NFP_NET_CFG_UPDATE_MACADDR; - ctrl = hw->ctrl; - if ((hw->ctrl & NFP_NET_CFG_CTRL_ENABLE) != 0 && + ctrl = hw->super.ctrl; + if ((hw->super.ctrl & NFP_NET_CFG_CTRL_ENABLE) != 0 && (hw->super.cap & NFP_NET_CFG_CTRL_LIVE_ADDR) != 0) ctrl |= NFP_NET_CFG_CTRL_LIVE_ADDR; @@ -613,7 +613,7 @@ nfp_configure_rx_interrupt(struct rte_eth_dev *dev, } /* Avoiding TX interrupts */ - hw->ctrl |= NFP_NET_CFG_CTRL_MSIX_TX_OFF; + hw->super.ctrl |= NFP_NET_CFG_CTRL_MSIX_TX_OFF; return 0; } @@ -705,19 +705,19 @@ nfp_net_promisc_enable(struct rte_eth_dev *dev) return -ENOTSUP; } - if ((hw->ctrl & NFP_NET_CFG_CTRL_PROMISC) != 0) { + if ((hw->super.ctrl & NFP_NET_CFG_CTRL_PROMISC) != 0) { PMD_DRV_LOG(INFO, "Promiscuous mode already enabled"); return 0; } - new_ctrl = hw->ctrl | NFP_NET_CFG_CTRL_PROMISC; + new_ctrl = hw->super.ctrl | NFP_NET_CFG_CTRL_PROMISC; update = NFP_NET_CFG_UPDATE_GEN; ret = nfp_net_reconfig(hw, new_ctrl, update); if (ret != 0) return ret; - hw->ctrl = new_ctrl; + hw->super.ctrl = new_ctrl; return 0; } @@ -732,19 +732,19 @@ nfp_net_promisc_disable(struct rte_eth_dev *dev) hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private); - if ((hw->ctrl & NFP_NET_CFG_CTRL_PROMISC) == 0) { + if ((hw->super.ctrl & NFP_NET_CFG_CTRL_PROMISC) == 0) { PMD_DRV_LOG(INFO, "Promiscuous mode already disabled"); return 0; } - new_ctrl = hw->ctrl & ~NFP_NET_CFG_CTRL_PROMISC; + new_ctrl = hw->super.ctrl & ~NFP_NET_CFG_CTRL_PROMISC; update = NFP_NET_CFG_UPDATE_GEN; ret = nfp_net_reconfig(hw, new_ctrl, update); if (ret != 0) return ret; - hw->ctrl = new_ctrl; + hw->super.ctrl = new_ctrl; return 0; } @@ -1349,7 +1349,7 @@ nfp_net_common_init(struct rte_pci_device *pci_dev, else hw->rx_offset = nn_cfg_readl(hw, NFP_NET_CFG_RX_OFFSET_ADDR); - hw->ctrl = 0; + hw->super.ctrl = 0; hw->stride_rx = stride; hw->stride_tx = stride; @@ -1453,7 +1453,7 @@ nfp_net_irq_unmask(struct rte_eth_dev *dev) /* Make sure all updates are written before un-masking */ rte_wmb(); - if ((hw->ctrl & NFP_NET_CFG_CTRL_MSIXAUTO) != 0) { + if ((hw->super.ctrl & NFP_NET_CFG_CTRL_MSIXAUTO) != 0) { /* If MSI-X auto-masking is used, clear the entry */ rte_intr_ack(pci_dev->intr_handle); } else { @@ -1559,7 +1559,7 @@ nfp_net_vlan_offload_set(struct rte_eth_dev *dev, hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private); rx_offload = dev->data->dev_conf.rxmode.offloads; - new_ctrl = hw->ctrl; + new_ctrl = hw->super.ctrl; /* VLAN stripping setting */ if ((mask & RTE_ETH_VLAN_STRIP_MASK) != 0) { @@ -1578,7 +1578,7 @@ nfp_net_vlan_offload_set(struct rte_eth_dev *dev, new_ctrl &= ~NFP_NET_CFG_CTRL_RXQINQ; } - if (new_ctrl == hw->ctrl) + if (new_ctrl == hw->super.ctrl) return 0; update = NFP_NET_CFG_UPDATE_GEN; @@ -1587,7 +1587,7 @@ nfp_net_vlan_offload_set(struct rte_eth_dev *dev, if (ret != 0) return ret; - hw->ctrl = new_ctrl; + hw->super.ctrl = new_ctrl; return 0; } @@ -1660,7 +1660,7 @@ nfp_net_reta_update(struct rte_eth_dev *dev, struct nfp_net_hw *hw; hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private); - if ((hw->ctrl & NFP_NET_CFG_CTRL_RSS_ANY) == 0) + if ((hw->super.ctrl & NFP_NET_CFG_CTRL_RSS_ANY) == 0) return -EINVAL; ret = nfp_net_rss_reta_write(dev, reta_conf, reta_size); @@ -1669,7 +1669,7 @@ nfp_net_reta_update(struct rte_eth_dev *dev, update = NFP_NET_CFG_UPDATE_RSS; - if (nfp_net_reconfig(hw, hw->ctrl, update) != 0) + if (nfp_net_reconfig(hw, hw->super.ctrl, update) != 0) return -EIO; return 0; @@ -1690,7 +1690,7 @@ nfp_net_reta_query(struct rte_eth_dev *dev, struct nfp_net_hw *hw; hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private); - if ((hw->ctrl & NFP_NET_CFG_CTRL_RSS_ANY) == 0) + if ((hw->super.ctrl & NFP_NET_CFG_CTRL_RSS_ANY) == 0) return -EINVAL; if (reta_size != NFP_NET_CFG_RSS_ITBL_SZ) { @@ -1795,7 +1795,7 @@ nfp_net_rss_hash_update(struct rte_eth_dev *dev, rss_hf = rss_conf->rss_hf; /* Checking if RSS is enabled */ - if ((hw->ctrl & NFP_NET_CFG_CTRL_RSS_ANY) == 0) { + if ((hw->super.ctrl & NFP_NET_CFG_CTRL_RSS_ANY) == 0) { if (rss_hf != 0) { PMD_DRV_LOG(ERR, "RSS unsupported"); return -EINVAL; @@ -1813,7 +1813,7 @@ nfp_net_rss_hash_update(struct rte_eth_dev *dev, update = NFP_NET_CFG_UPDATE_RSS; - if (nfp_net_reconfig(hw, hw->ctrl, update) != 0) + if (nfp_net_reconfig(hw, hw->super.ctrl, update) != 0) return -EIO; return 0; @@ -1831,7 +1831,7 @@ nfp_net_rss_hash_conf_get(struct rte_eth_dev *dev, hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private); - if ((hw->ctrl & NFP_NET_CFG_CTRL_RSS_ANY) == 0) + if ((hw->super.ctrl & NFP_NET_CFG_CTRL_RSS_ANY) == 0) return -EINVAL; rss_hf = rss_conf->rss_hf; diff --git a/drivers/net/nfp/nfp_net_common.h b/drivers/net/nfp/nfp_net_common.h index dd62ec6d83..3fb3b34613 100644 --- a/drivers/net/nfp/nfp_net_common.h +++ b/drivers/net/nfp/nfp_net_common.h @@ -117,6 +117,8 @@ struct nfp_hw { uint8_t *qcp_cfg; uint32_t cap; uint32_t cap_ext; + uint32_t ctrl; + uint32_t ctrl_ext; }; struct nfp_net_hw { @@ -139,9 +141,6 @@ struct nfp_net_hw { /** NFP ASIC params */ const struct nfp_dev_info *dev_info; - /** Current values for control */ - uint32_t ctrl; - uint8_t *tx_bar; uint8_t *rx_bar; diff --git a/drivers/net/nfp/nfp_rxtx.c b/drivers/net/nfp/nfp_rxtx.c index a0c7e0e9b5..a9dd464a6a 100644 --- a/drivers/net/nfp/nfp_rxtx.c +++ b/drivers/net/nfp/nfp_rxtx.c @@ -143,7 +143,7 @@ nfp_net_rx_cksum(struct nfp_net_rxq *rxq, { struct nfp_net_hw *hw = rxq->hw; - if ((hw->ctrl & NFP_NET_CFG_CTRL_RXCSUM) == 0) + if ((hw->super.ctrl & NFP_NET_CFG_CTRL_RXCSUM) == 0) return; /* If IPv4 and IP checksum error, fail */ @@ -307,7 +307,7 @@ nfp_net_parse_meta_hash(const struct nfp_meta_parsed *meta, { struct nfp_net_hw *hw = rxq->hw; - if ((hw->ctrl & NFP_NET_CFG_CTRL_RSS_ANY) == 0) + if ((hw->super.ctrl & NFP_NET_CFG_CTRL_RSS_ANY) == 0) return; mbuf->hash.rss = meta->hash; @@ -339,7 +339,7 @@ nfp_net_parse_meta_vlan(const struct nfp_meta_parsed *meta, struct nfp_net_hw *hw = rxq->hw; /* Skip if firmware don't support setting vlan. */ - if ((hw->ctrl & (NFP_NET_CFG_CTRL_RXVLAN | NFP_NET_CFG_CTRL_RXVLAN_V2)) == 0) + if ((hw->super.ctrl & (NFP_NET_CFG_CTRL_RXVLAN | NFP_NET_CFG_CTRL_RXVLAN_V2)) == 0) return; /* @@ -347,12 +347,12 @@ nfp_net_parse_meta_vlan(const struct nfp_meta_parsed *meta, * 1. Using the metadata when NFP_NET_CFG_CTRL_RXVLAN_V2 is set, * 2. Using the descriptor when NFP_NET_CFG_CTRL_RXVLAN is set. */ - if ((hw->ctrl & NFP_NET_CFG_CTRL_RXVLAN_V2) != 0) { + if ((hw->super.ctrl & NFP_NET_CFG_CTRL_RXVLAN_V2) != 0) { if (meta->vlan_layer > 0 && meta->vlan[0].offload != 0) { mb->vlan_tci = rte_cpu_to_le_32(meta->vlan[0].tci); mb->ol_flags |= RTE_MBUF_F_RX_VLAN | RTE_MBUF_F_RX_VLAN_STRIPPED; } - } else if ((hw->ctrl & NFP_NET_CFG_CTRL_RXVLAN) != 0) { + } else if ((hw->super.ctrl & NFP_NET_CFG_CTRL_RXVLAN) != 0) { if ((rxd->rxd.flags & PCIE_DESC_RX_VLAN) != 0) { mb->vlan_tci = rte_cpu_to_le_32(rxd->rxd.offload_info); mb->ol_flags |= RTE_MBUF_F_RX_VLAN | RTE_MBUF_F_RX_VLAN_STRIPPED; @@ -385,7 +385,7 @@ nfp_net_parse_meta_qinq(const struct nfp_meta_parsed *meta, { struct nfp_net_hw *hw = rxq->hw; - if ((hw->ctrl & NFP_NET_CFG_CTRL_RXQINQ) == 0 || + if ((hw->super.ctrl & NFP_NET_CFG_CTRL_RXQINQ) == 0 || (hw->super.cap & NFP_NET_CFG_CTRL_RXQINQ) == 0) return; -- 2.39.1