From patchwork Tue Mar 11 05:38:22 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Fang X-Patchwork-Id: 14011173 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 10C7AC28B2E for ; Tue, 11 Mar 2025 06:07:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Content-Type: Content-Transfer-Encoding:References:In-Reply-To:Message-Id:Date:Subject:Cc: To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=AylrTYO2MR4KNm8bzxSw2x5eAbwNfA0J4XCmjStMIGQ=; b=QNXYxirPzSnoLZcNKhexJaunwf McV3Az6Jb5QH/JpbduW7Ee/vUpYHiz/9z6EuzwGeunjtp+10NzdyVLh9br8xwZwExuPz+q6/RDBHH 5HK5E2HN6Xf1+fV03T7DVs8Ntewty7AE18PuppuLIpFrqHNRngQPamMNdU4FgEoG+3ScNueVrwOpO JVYpDxMoQhkyVeFVT8Q1T2MYzqL+DhBWx5CmUqvNvLmNEYb/cVMuR37GOtTgSD3B7S6uVifzO17Al CZ1e1XcJuVwaTEfuRtgNLBJDWDxX/952tnmpVSNREGbe4H+KT/qruhwrItnxz4MEtT+FcPvtG2t6V HWa1llrQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1trsmL-00000004ifs-0wii; Tue, 11 Mar 2025 06:07:49 +0000 Received: from mail-db8eur05on2062d.outbound.protection.outlook.com ([2a01:111:f403:2614::62d] helo=EUR05-DB8-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1trsbQ-00000004gZq-49Gr for linux-arm-kernel@lists.infradead.org; Tue, 11 Mar 2025 05:56:34 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=O2asjsz2EcVKtRRJma0I08/7BoVOhnqWHHyHXe/NpFfMrtY3xqOLyk6hEjhojGpC2Xqp4hHIOdGDWuXQ2KsHag0HhsbNBhWudFE94CYIxw16nf0QmYCozeSd6ToFQvCfkC6aa/JgzUGmZXXvfJ2QNyqwNnefjsc0b1llU0pkDeh8PAi9s6tB2b+unyEjIpZgArXow7fSrkxIBelV09QvZn8bzN7U9/noD0qeeNGzc1C/SNhlj5eKR+nhqxULPUz8FW4aR49tuTbfcBLrh5aEVvYEAGzWCCAnOdtwOjBenSGhHwUGE/y6k1+alLASF6bbiyKgOAzpc2rxklfz/paRmg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=AylrTYO2MR4KNm8bzxSw2x5eAbwNfA0J4XCmjStMIGQ=; b=GkmbH1w4x6/I3WLnIQVLU5PpbbEXVedRuL4QgltF1vvv+npfbNO87X06AEbemvYmtf5Foj0Fcjwl/8GV3+Wja3NIZDcJEvprUHi3T/GFkwh0ufSEZoUyyjICJQtunfRS8P98DPtSUuHxW6yYM+jyX8yeH1T3BgHUQMNHlIwqhU6XJ6JacohgTB2M9isxRqJBH2YS9zJ+0QYtNktuFTKCaYLSyBQsxHbVJOwKSFEGylZTyeWhD7IxZEZ/cqZAALAXX/mU4tNub+dUNPbHtIPy7tpq7vgxF7doyOkxDclsMLGT7834Z8abZJstZc0lZ9JWFaT3gZbS/WlMD1V8H3uTbg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AylrTYO2MR4KNm8bzxSw2x5eAbwNfA0J4XCmjStMIGQ=; b=WJ1CT9UipYjvUzFw9fjtdu79YvJLxz2Qs6x1QG75nrf9CpbbcCLattQKVn4gxaVvXg7TDv74DaRCYKJnw6B6D8Sg+dqN5Vyl6zrRpttRthAf+7JvvUaTds1uc33ZqutUffWb4qkHJTS7dT83VTZFlgcIvUyJApeWQjKZr1Zzmn6n0Anh2Le8t1vPSvDbZEtzfOmbztcW+N1fVPXzoBCtKkuPl5lJ69HcXMpG68YEr7Ir5GOITfAImiIdbrxGbil2rMyuCagJ/D++Ua/s4P/snG9lRwjicWDVnXF+fd5Jh+Z0A0dIywzA0ZBB7M9Bf5ibobPMXJtSQUI3Y/sdRapWDg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB8510.eurprd04.prod.outlook.com (2603:10a6:102:211::7) by GV1PR04MB10941.eurprd04.prod.outlook.com (2603:10a6:150:201::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Tue, 11 Mar 2025 05:56:31 +0000 Received: from PAXPR04MB8510.eurprd04.prod.outlook.com ([fe80::a7c2:e2fa:8e04:40db]) by PAXPR04MB8510.eurprd04.prod.outlook.com ([fe80::a7c2:e2fa:8e04:40db%5]) with mapi id 15.20.8511.026; Tue, 11 Mar 2025 05:56:31 +0000 From: Wei Fang To: claudiu.manoil@nxp.com, vladimir.oltean@nxp.com, xiaoning.wang@nxp.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com Cc: christophe.leroy@csgroup.eu, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linuxppc-dev@lists.ozlabs.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v4 net-next 06/14] net: enetc: add set/get_rss_table() to enetc_si_ops Date: Tue, 11 Mar 2025 13:38:22 +0800 Message-Id: <20250311053830.1516523-7-wei.fang@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250311053830.1516523-1-wei.fang@nxp.com> References: <20250311053830.1516523-1-wei.fang@nxp.com> X-ClientProxiedBy: SGBP274CA0011.SGPP274.PROD.OUTLOOK.COM (2603:1096:4:b0::23) To PAXPR04MB8510.eurprd04.prod.outlook.com (2603:10a6:102:211::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB8510:EE_|GV1PR04MB10941:EE_ X-MS-Office365-Filtering-Correlation-Id: 05f02f98-45bb-41a1-82cc-08dd606178da X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|52116014|7416014|38350700014; X-Microsoft-Antispam-Message-Info: j92cAYZHJpsOHPSEqAMWl1Ao9R3pXuVkShLOBt1C5/C19fVhwgoxlpEBk286ZllS4r7+WYubEmb1S8DlWe8uSDV1cGYtZ2P4lK8G4ghsG4+vIB+NOth3ZARPfhZgRoFBlQB5DvjJXedGZRMOL+jVld2QH0zemY98KtBX2y4lIxb3eM9OPVAEi3J1/7DGPYJBDAGsdDcjdqcsic3IIRziJiYfLOZxZCv4Uwx1abhlrZssxvtmjJhmikDI9KBWMxE556wAUJ4xJHm5oBXutPiKEaH+2R7SK6bQcAdyZQPy+0LQ+yhe19f8NFQAtlJBG77AnOr3pgmZUHNgxi6iQlgwMjEHsxG5NZ47gwVICtw4NjD7Vr2t+JQdh5TgqXLisNWiyOhgQbkEVvFvvwcML0K5ahkyhN+i3bjCSio5CNjxRKkCdIMOl91L999rqOIknFXReCzLdiO+I01LyVQg1FdqjIn/BMINQeEhp3PB3WvmogyV+nom3I1gXkbRYlBXxkZcCDnt8xvM1Nal4Lxz6kCX0PqBU1+35wl/6Q14KXNC85hE+7EY6xexiwQz17j/EIrTARyLfxABDXeS+HfE/p3/AAG5l4OooSH35mo3RgvG3JQ9wg/uEiHo4qhNcDJFRxAW2NLWmzMEjgnxUnEvgLmxLYvrVRSxpkOkWUcDaXA6t/EnXqHRB74dlu/ENHDqr7gw1ouJ5Zw68ZBXWVwwRy+UhGHNHY69mjOetzLimQ4qS9AiGZu4MPUCp9dAS/k6P9d/N1vjAUbwiw0QJSI95GFme2Hs8vOD/WUBerBDQHizSi5CSz6ndCsX3g1ej/jbFWIfJbpPK2PA+V1Pv10/YJfJ+ap1A+ab5PplcdiTkGqaDx9/toyZcAICl1EwdCVBKikqafQJDcDcCuy/JwLAu3elc1xHJetCKABmlfr8fUh+RYg0RAa5WC0aOtWlQEBeQr0QosOxmrtxTu6S4xKoJgfi5si/YP4t8NMhvGe4/JgjM2ccXxO4nYePFU7bOM13JhYST5PWQd6JF34RZfNtiDFd6eUVemkl4Uy9Jp58e7oVrI4MhK/wbPKvStzChIKsRSfnxkI5wptWsfvoadME2HRTivjWKF2u2dOBUfeJr5pWuoBvIMKyIOz3RddI5g6A71qh6V1FXYObOKVuwkSHKPmiwO38qDcCCvaHtkEmZL6rkR+AbHPxl8pCV8GHClqy2604M9JBs80wGAoai+CL8VDlAkxfzXlJu6vAYncRS5NKzZ32lLVosqtXadL2j0OsoKW462v280ThkUrQc44xeFP0kRv0J0KyGmfb2JkngninQfpA8sNfJksWwZUvNmgCX0P9Jvkd2GeEppFmFXP2DDsOW5QS/i12idDXKOIrRGLSQxe/WwxLDat6d40pdGa6GSqf4EGk0cPNHjnoq4559keFRP8NRG72jq0HfV5isL9xOzTCLcQ6pU26pCmiWHZHh2s7 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB8510.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014)(52116014)(7416014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ba8n5jc2a8D2WUHWjTpHZqHUKeGa/XpGDFIswGWNoHZcxvKzUzBVK+CadcM3cXNoZVMKrtqKHwiDajMLjvP+RDLVY3q7e0edwO3M40ijWsldYDRSXdySgcbwKhYp6jENKmp+gVuKJmIcsLyw6SwWKsekB59SGM89//KplWRueq/HqQIbwUibi0z1JCj7a5ocEojEpNFGOE6QOg5PSmr47YFXEt5dC+oGVGR9XLI7QzaSJtoirXwf9QyR0VlCnhzt/Bds0MdlaKcCA6qcybvdfbFEYLcu66synTO3dlaEh6txxTykZQ2rLT3a2UNr1d0J2dD/EKHse/LKuAz6V8Z8LuuM1Hkfj1OcpxOKjSzz6Oi5n/OhXD0dmXRVxuFb/PqH/DO75UAJh+mXel4/WOM3hG9WM8PWdy0TfVIftbgBsf73AsrKavbUZmOxE+jU59NbCLTvOkwUo1vRmWkWADPstNq+53zSGbyidLx94tBZ4mhUwZ9c4RLHEGXyicKRkgbKrisHazFIlfbBXi/eT0pCd2tCM0484gOZRtkHMWL7XYyCytAcds0tGu5ZskHvWkUsrTJskc+CQFUqTLWpYhNnUTk56MBaYz8L8Y/ysKshbLGEQ1ZAFB6rqRnZ53BVdGGR6ruE0oSxtv+M1beMC772MriMXU0vGwATVdXgl/soiT0j8F+j0qF0PBlVgZtluvorvIemKn/0CfTMlEsH+YLXOibRQqLEqiY21qxZkSXmfrxtOEdIdvwajHjlFKS3RloRCnMa+piRAEX1MSfWX+s2krt4F5/P3B6WJycv/s7TvQZVY+6KdZ6ihmKXdQ12BH0BqMGDNVp4yaO3p57SDnNZDoH/VUV9k3BUVAhKul7nhsQV2PR4kbTpSY1Rc+kXlLXskMplMeuvDk7wW1ws/qbg0BrJxjaGMk1rq+R39zJdp3QupYDnUKS/p/MmDsKH8X8+UtYVrSba2Tv62P/3SGxEBf7VhZ4nE+DFswnRXCApNGpvSI794a9h9TIm1pivodOuBUgELl2tBBGni/r2J4292Nt6V++IxZIAD9LoFnVU2wd9WqbsbF+WkUQK3gPB82kf53mTgEL4z1J9roUpEgjKoLTiJi/gbq69QKYU76gUL+8+ISbX1oG30jPaIq6PKO/22KQk7ClGsuBlqPIegjrZSSxH60iv2W4Ay0RkZNue+RLu1b2cAnQ5s/ftJSLdXrBy0IxYKzQXCJnjTrCZj0NI/UlHaekM1P5fjrK0SGp5BprfUwoYtdi6TnGjWMWaxR+6qKwNfSxVICcyY105fwrVz4WBYU446/ZDl7oIAuw+eWlSBU0Cx1rRRlecaoVWIWcrQDgFsu7sJdxUdMcgqLAyA8VStj6kLijtgydCit18XeZBDBGcSllbWsr7fUBl8iSK3ObxNnKTEFcl/UC50fDy1nokWiyLLqpeDNuRwSLDQKqDGBNRCXWMkrTD+l7XQ3lJt8Q8PbdTBYmilKrzVp9g/PX/OSwxjC43yDJLH0c/2HTrWI+qbxp0IOrZPQjX45UAmIGYQkOcnqgsqQLWI9hm6V5Fz56p86fjlS1cowm/I0psLWuj7Irc2J50ZSVisj+k X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 05f02f98-45bb-41a1-82cc-08dd606178da X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8510.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2025 05:56:31.4219 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: B0NuiOsO7tFIaFGKjvP3/hQl2kBVpmIdUb1esqjvN2HUuMZY9cytVVVDzBSMAim2izuaWMxeOv7Q9JDsRtLQCg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR04MB10941 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250310_225633_030986_402F4B53 X-CRM114-Status: GOOD ( 14.76 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Since i.MX95 ENETC (v4) uses NTMP 2.0 to manage the RSS table, which is different from LS1028A ENETC (v1). In order to reuse some functions related to the RSS table, so add .get_rss_table() and .set_rss_table() hooks to enetc_si_ops. Signed-off-by: Wei Fang --- drivers/net/ethernet/freescale/enetc/enetc.c | 2 +- drivers/net/ethernet/freescale/enetc/enetc.h | 2 ++ drivers/net/ethernet/freescale/enetc/enetc_ethtool.c | 12 ++++++------ drivers/net/ethernet/freescale/enetc/enetc_pf.c | 2 ++ drivers/net/ethernet/freescale/enetc/enetc_vf.c | 2 ++ 5 files changed, 13 insertions(+), 7 deletions(-) diff --git a/drivers/net/ethernet/freescale/enetc/enetc.c b/drivers/net/ethernet/freescale/enetc/enetc.c index 3832d2cd91ba..2a8fa455e96b 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc.c +++ b/drivers/net/ethernet/freescale/enetc/enetc.c @@ -2405,7 +2405,7 @@ static int enetc_setup_default_rss_table(struct enetc_si *si, int num_groups) for (i = 0; i < si->num_rss; i++) rss_table[i] = i % num_groups; - enetc_set_rss_table(si, rss_table, si->num_rss); + si->ops->set_rss_table(si, rss_table, si->num_rss); kfree(rss_table); diff --git a/drivers/net/ethernet/freescale/enetc/enetc.h b/drivers/net/ethernet/freescale/enetc/enetc.h index ca1bc85c0ac9..deda386b20a0 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc.h +++ b/drivers/net/ethernet/freescale/enetc/enetc.h @@ -290,6 +290,8 @@ struct enetc_si; struct enetc_si_ops { int (*setup_cbdr)(struct enetc_si *si); void (*teardown_cbdr)(struct enetc_si *si); + int (*get_rss_table)(struct enetc_si *si, u32 *table, int count); + int (*set_rss_table)(struct enetc_si *si, const u32 *table, int count); }; /* PCI IEP device data */ diff --git a/drivers/net/ethernet/freescale/enetc/enetc_ethtool.c b/drivers/net/ethernet/freescale/enetc/enetc_ethtool.c index ece3ae28ba82..d14182401d81 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_ethtool.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_ethtool.c @@ -681,7 +681,8 @@ static int enetc_get_rxfh(struct net_device *ndev, struct ethtool_rxfh_param *rxfh) { struct enetc_ndev_priv *priv = netdev_priv(ndev); - struct enetc_hw *hw = &priv->si->hw; + struct enetc_si *si = priv->si; + struct enetc_hw *hw = &si->hw; int err = 0, i; /* return hash function */ @@ -695,8 +696,7 @@ static int enetc_get_rxfh(struct net_device *ndev, /* return RSS table */ if (rxfh->indir) - err = enetc_get_rss_table(priv->si, rxfh->indir, - priv->si->num_rss); + err = si->ops->get_rss_table(si, rxfh->indir, si->num_rss); return err; } @@ -715,7 +715,8 @@ static int enetc_set_rxfh(struct net_device *ndev, struct netlink_ext_ack *extack) { struct enetc_ndev_priv *priv = netdev_priv(ndev); - struct enetc_hw *hw = &priv->si->hw; + struct enetc_si *si = priv->si; + struct enetc_hw *hw = &si->hw; int err = 0; /* set hash key, if PF */ @@ -724,8 +725,7 @@ static int enetc_set_rxfh(struct net_device *ndev, /* set RSS table */ if (rxfh->indir) - err = enetc_set_rss_table(priv->si, rxfh->indir, - priv->si->num_rss); + err = si->ops->set_rss_table(si, rxfh->indir, si->num_rss); return err; } diff --git a/drivers/net/ethernet/freescale/enetc/enetc_pf.c b/drivers/net/ethernet/freescale/enetc/enetc_pf.c index cc3e52bd3096..097a5b50e448 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_pf.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.c @@ -907,6 +907,8 @@ static int enetc_pf_register_with_ierb(struct pci_dev *pdev) static const struct enetc_si_ops enetc_psi_ops = { .setup_cbdr = enetc_setup_cbdr, .teardown_cbdr = enetc_teardown_cbdr, + .get_rss_table = enetc_get_rss_table, + .set_rss_table = enetc_set_rss_table, }; static struct enetc_si *enetc_psi_create(struct pci_dev *pdev) diff --git a/drivers/net/ethernet/freescale/enetc/enetc_vf.c b/drivers/net/ethernet/freescale/enetc/enetc_vf.c index d7d9a720069b..072e5b40a199 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_vf.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_vf.c @@ -165,6 +165,8 @@ static void enetc_vf_netdev_setup(struct enetc_si *si, struct net_device *ndev, static const struct enetc_si_ops enetc_vsi_ops = { .setup_cbdr = enetc_setup_cbdr, .teardown_cbdr = enetc_teardown_cbdr, + .get_rss_table = enetc_get_rss_table, + .set_rss_table = enetc_set_rss_table, }; static int enetc_vf_probe(struct pci_dev *pdev,