From patchwork Tue Mar 11 05:38:23 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Fang X-Patchwork-Id: 14011174 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 BDEEDC28B2E for ; Tue, 11 Mar 2025 06:09:39 +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=K5QjmWheboFtAc1mU/6L4M6wi2onqIZsYVjlcvkcBEg=; b=JRRpzp8venEqnWGCHrCLxwRaoi wlf6/aVuurUvxUZhv2yXRiOVp8ys/eHu6W/y9B97V2ReWHVbADne1VZSfjt0ayTb55uVfilOSknKC ZWlELkTTO5Iw0O5RB9H9nbfX6xMOzb+fSyYAU40qgb+CjS1a+RRGvtzzNMLsVkN1+vUN2X4JeOZsA y3Sj8jguskCcwo2WhNC3QaCIS7Ttrxsiu81yptYyb+8+1rSsAF1Glo9CfrXA1tThccmNxXkwpUKvG FdxIegzCC6NYjWrDh/zHMLLFvzLTRd1ohWOHR3w+b8T0/7Kaex1pedKwONSXc7DwlESoudoQWBNFw lyXWpt3A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1trsnw-00000004io1-3d2N; Tue, 11 Mar 2025 06:09:28 +0000 Received: from mail-northeuropeazlp170120003.outbound.protection.outlook.com ([2a01:111:f403:c200::3] helo=DU2PR03CU002.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1trsbZ-00000004gdn-2f1y for linux-arm-kernel@lists.infradead.org; Tue, 11 Mar 2025 05:56:42 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=carhrPAPJaKidiO5P2eIa1/fY9yqmcCrp/AOhg8mqrRfiiwl+xZkUIzKmPYe/9OOTG+CUg4xTIh8j8GI0VkhX5xL8hR4rVuTIv/RaPf6kxJr4nA+Fygrz8NXqaDob6WCHkiV7AmNIzZtaTLOagW+fQfREJOFpdLUQ54YmkCbuQaaPn/lwFmJDNoFABk5Pd5Khwbv2Am7vJnhED6RJJKT9PEvb1yR5xTBSFE4CLeVYy0W2QFvUBVDTeOF5LO7h8KFl2j68iL0nPx0jJza9Um3uYVVqOM58hagf2/MR/JtLDYwIxvX+bFg1K5Z9ps0zFuNrK/b4SUD5aVBD9xHfolJrw== 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=K5QjmWheboFtAc1mU/6L4M6wi2onqIZsYVjlcvkcBEg=; b=NOQ6tSkZj7SUImyhwTrNMl2eCH2j/KTJ4gdIcKn9ETYD/JpdkQ8NaOiwVo1xF9WBurlEzyW9v3gLrGyd1Eo4Ax1548rpqzK4bqVbt9Q3fKubcePm7ZWaxU+aXg76dg6cRJ0A1HPHdnoqK3TjVIEfHge6RbVmGnWi4D4b6EvFOB1B+kzfpQTsG5KKBEZHkaFxA9j85rIEg+DNiM7bOqjnNHJ81OPQ0aqcYwXbEraaJjXDYnZvDR785G9aviEFhHE1w6EMe4Mz06bp34eXCDGiZdImGGVibUV5gnJGmoT3DhQuniNS6x+PAeyRJpfrFQc9hu5cTJF4d2o+L1Cp1UCfng== 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=K5QjmWheboFtAc1mU/6L4M6wi2onqIZsYVjlcvkcBEg=; b=aMWNHMPgyQyh/NNmrWg65AlqhzK3X4XzzCa0F/mmS6w4RPIcWqmKglfWj8uFi0jtf+my0/MCQeU9UKnX6EXgRbkBl+b1mx/UGiZIAlM5p//eBNKkHaIJaLVD6Eg/2pAMmZumtPgJUfu/cRj56tFVAH2RyFT3poDU/vWQbUUelrEshZmLCcSagwjJobh4nDKbt1QmH7yw9SR6W+ICVu/0bILJL/l36VA0YRH3Do6DCfx6MC9Q06g7QsSX7x7Rds1W68x0IjOvBWxzyn6AZ+CFvug9ZkCiNyp7kOcYJtJLZcrD9+QSmLJBLF1YySHCFHf36ANnZCa2oA6QK1DYMDc4+g== 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 GVXPR04MB10945.eurprd04.prod.outlook.com (2603:10a6:150:21e::18) 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:35 +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:35 +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 07/14] net: enetc: make enetc_set_rss_key() reusable Date: Tue, 11 Mar 2025 13:38:23 +0800 Message-Id: <20250311053830.1516523-8-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_|GVXPR04MB10945:EE_ X-MS-Office365-Filtering-Correlation-Id: 5173ee93-580f-4ac9-93df-08dd60617b6f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|7416014|366016|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: n+lGPzPxldbDiiGTUBJ7QhKf8qwO/bFhQp6b62O/1XHniGkE7kcTZ+jUiQ/EHdI3Q4b9Zhb42K+71l7q000ARV+LnB6dvOPqnUT6BB/zzKRNZvhb/KejvUGqp9kE+u917u7b8/Tjeysa2O32dbff2medvQ3RHpUON+5SlDzDyCxmEbimuEl0cuQgqg9A7hWXn9jz7Y3USgsiMTBlwziawlwD3DTgzcsLM1a6x9xIAEqzSHaTeIDMI8ivKqV0ZNe2NwC3DS3mJjioCpv7knGcn31HlnILYOCRFwNJ9ZZ+LfINTqcj6ag0BZvovA52VXEgYZRNWSdOgIH6YRS2BZ0iJFA+sI/bn1GYBwgoqch3AfRqnM9LEV6sBe49pQgWdGZ2FVUsghEYQw1DfxLx5kCK9A3slM0Yjd2608ZJ8utpvieAcrHdYK9XnKTv2WLZtTl+UgAFcKRWW59T2sMoRVj3rdkDunjJLO6/YG3Vw1zmpRmntp6x/g6eLYTf5wsCeAvIjd0I/sneo1/qCS57op9dh0fMJJrWHYu9UKwefG3bVZPmeejFI+irNbtifkrredgXct7FIZzKZoQJKIy72tNpxQTyz1d79QE8UlRDMbpJokjwW2Aqi8e3eTcF7Y5+wpEj913qjWoU/GOyPPRt/umbqjtazZR44cTZn9Bms4FGFOcKJ2jzKknA5P5g7KZQfN3uo+UVcWQB892IakRlQSzra6EiyF3NbeBgsdqNrgNum0pQaf4sa6px15YFUH9OtbkmMVwL8PeMhMUY9xycENJzdu2auuzNYaALYaKAcMlihW6lozPvyPKtPa9FO1qv3p0GH9pjawJO72bW1fmYUupxlwUezsRoUcZRGZX3VfUOGGpKPleDhHxst2v6Wcu/T9/jhnLPnJC4aGij2HKE900DZmmwWIoGMHg747QrxiK2tYBk/+dztnDxw2BZjc9oAC96zeQ7ZHm4a/vwrA/9CrUoTQVExY3SNAub/yPb0A1SRCMlWaRfwhdCr4QvnmuDupTo8PfcMHtieGe6lYXD7Bq5skHVlSPDdu0eZxziFvmb5xcPoc7mSAfA9TPMXheq3XlGGlNBjuLjYO1Z5TywgwyJ1o+fP618XqMBjcURxTpCP3xgcjyDjF9d9sremPqMSUhYLuW9ueE3HmXHw9bqbrQQ9qsvR0Pr0dfLlFNUTy+uF2vpeFFNyuKxSJas23DX+zUeQMV4kNK4FAmK0IZ0DbZ5/UsnR7JsSOVi9ZtU1pMgz7u77HQf0O4mg7vx8rMhd/f3IFA1SWgGnN83Cg6RO+SJwwFoFXTgeq4ocL8B7YJM4w0BHA9tw1m/Hb+S2I3Mgkqssf6oAz+OiUS5jopYzIncUnvJZJOOcnlhFXvWODAwzpaGoYpikE4kJ3Ok4vj7FR1r3fQRYWnNYbzz2s5b8GLM4eIvZF3cttnMNwWfyniXu5Dps7VH3kpMnY0flrJ1XIxV 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)(376014)(52116014)(7416014)(366016)(1800799024)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 4Ln4m8fMMEqXUJ7eVEsEpveoTNtchU8QL3YGO9MXIr/hgGlWJ7NhxufA2WbMrot7qlaAWTCEY2bJHE+zY/YppuNnQZEnbt/DEFW/pmHWTJvoM/4yTZjWSa7xTUc8RKLgfQF6E8zegP6+KVLsPnctxu8peglBNYxoJ/+R7Gi8ggN1TW6mtzsgQLJDZlxWYi9+llkZdOymn5GxVoRGvGsxMFBXrzA4OrWyCpCjowV0HpofHpUW8Pidc5tAu2wZTeEaZEUa7bTynjcLrdD6uaMb/Z6FL4v03ccFSaYZJwWkNN3hZDhlv8s36G0zZZxzMUrOw+Z3t4sTjDQdtP4sP27UtvqbaXAJRmd19m4ab7+8sw3dw/LAbH+KdtRKzjiXpWuHakA+9j4wkpC+7j4UNYLpFxM8OzA5RNY1lWXFsv+o+5z67kghXhnsfLNnhdJ63RUPc09pDIHiJLVfAPE2TqQn01xQ8HxFdL3C6bWXVq7zGPwFOIkG1DcjB2CQDsa6YQCFbRH7eBBqgQjwajfjfU/cjKlXWCCrDO994+/hZgEOYAlOdIEQygP69PQF326ZxV9lnf7X8sthJKML3u/k2sqww4er6w7ipetySXJh8NKoUKMZnngWLLtZ3GxqpZZQdPnWMwM8pBD6K71VQ1bx3rl8mwuuT8rWmVkHmTOTK38UUbyk6w59qP0iJy0r21sJeZJpK0ajdn5IZsBkPt5VrnhDry0pEHueNB+qCn55oDdc3ekaGmNTkaTQhfkq4FXZD3yIcevFleZWvh40q+h20Mehh1kYTB87ZNKv1P+J9t3zAAqlgZsfEJtnjJt0J7bByJIXq0gT5I5Bq0XOzjgq0dQR5eSUautIw5LLArabZ+laAQOtdJyS3NEfCfV4wiJqJHwM9a6qiK0oL+ztWPW5CoNKfNTvg88Gk8jcMzC/9Esd2eeRb1sxJGXe1E8kYrWMqNsuWvitqlYsHbU6a64jd51Vrd9lhjBGrwzRh53ciUZEbwkYYH1GsOqmy7ffsUUE8EdLmRKHP5FbxftBESq6Z3mQ7smY5KUzL1DrHxr/PZ+acK4QlfC59YCnKj7uXf6lXXm/LOmgWSMLp2NWfySk2jyeZQLyMGdT6NNzd/hOfv0CPcPuvZxHCb1qX/y0WigGLfCmhYgVok6qXa+K/cwSPCmvduVaSgqqFK+9DBJyJX7Gt9r7Bfs0wjcSNQZYTwXhf6QbdpUA1qCGapmRYpgLJ9dJkGsLM3I8KXH6D2ktm4eNWlmqQ0bdiVLN2QX7PPGKp0J3l3wjZDD+O0H1HRU9oSpl3G7Rt2FmhkuvLW2LG2pmgXl9DrenMqE3K9SxW8gc+50+OeJ1MCHWMCgUy44yc0wj9MW2w4/JY2VzAnUwHncn0oDe0VgNiYDGVuR6p1I9dARHUbaJrKMFCQGV5/EflFWki1yu3lpACzO1WmDnwzFWk0r5ntRk6VF8Els/6z9HlNMbMcTW7m/JOvzp9ETuzxN8M01cW50VoXY4VPH+NmFDMlXm2N6MtTeHT57W04IHN64CwkWcK8HLxE7zMHFDosCuG6N0VLBTMl5A0KYXwg4s7aTSHCnuCoCYHb2w8mzs0XJP X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5173ee93-580f-4ac9-93df-08dd60617b6f 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:35.7423 (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: gC/xgyiZXk1zRlWIwxcH293ARzDJgTjuOzbDZ952UF3US1h3bhT6CJd9wpiEsuik7Xqd4Ac15J6OvK9LUpkj+w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR04MB10945 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250310_225641_674591_9B025C9F X-CRM114-Status: GOOD ( 15.77 ) 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 the offset of the RSS key registers of i.MX95 ENETC is different from that of LS1028A, so add enetc_get_rss_key_base() to get the base offset for the different chips, so that enetc_set_rss_key() can be reused for this trivial. Signed-off-by: Wei Fang --- drivers/net/ethernet/freescale/enetc/enetc.h | 2 +- .../net/ethernet/freescale/enetc/enetc4_pf.c | 11 +---------- .../ethernet/freescale/enetc/enetc_ethtool.c | 19 ++++++++++++++----- .../net/ethernet/freescale/enetc/enetc_pf.c | 2 +- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/drivers/net/ethernet/freescale/enetc/enetc.h b/drivers/net/ethernet/freescale/enetc/enetc.h index deda386b20a0..a3ce324c716c 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc.h +++ b/drivers/net/ethernet/freescale/enetc/enetc.h @@ -539,7 +539,7 @@ int enetc_set_mac_flt_entry(struct enetc_si *si, int index, int enetc_clear_mac_flt_entry(struct enetc_si *si, int index); int enetc_set_fs_entry(struct enetc_si *si, struct enetc_cmd_rfse *rfse, int index); -void enetc_set_rss_key(struct enetc_hw *hw, const u8 *bytes); +void enetc_set_rss_key(struct enetc_si *si, const u8 *bytes); int enetc_get_rss_table(struct enetc_si *si, u32 *table, int count); int enetc_set_rss_table(struct enetc_si *si, const u32 *table, int count); int enetc_send_cmd(struct enetc_si *si, struct enetc_cbd *cbd); diff --git a/drivers/net/ethernet/freescale/enetc/enetc4_pf.c b/drivers/net/ethernet/freescale/enetc/enetc4_pf.c index a98ed059a83f..f991e1aae85c 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc4_pf.c +++ b/drivers/net/ethernet/freescale/enetc/enetc4_pf.c @@ -583,22 +583,13 @@ static void enetc4_set_trx_frame_size(struct enetc_pf *pf) enetc4_pf_reset_tc_msdu(&si->hw); } -static void enetc4_set_rss_key(struct enetc_hw *hw, const u8 *bytes) -{ - int i; - - for (i = 0; i < ENETC_RSSHASH_KEY_SIZE / 4; i++) - enetc_port_wr(hw, ENETC4_PRSSKR(i), ((u32 *)bytes)[i]); -} - static void enetc4_set_default_rss_key(struct enetc_pf *pf) { u8 hash_key[ENETC_RSSHASH_KEY_SIZE] = {0}; - struct enetc_hw *hw = &pf->si->hw; /* set up hash key */ get_random_bytes(hash_key, ENETC_RSSHASH_KEY_SIZE); - enetc4_set_rss_key(hw, hash_key); + enetc_set_rss_key(pf->si, hash_key); } static void enetc4_enable_trx(struct enetc_pf *pf) diff --git a/drivers/net/ethernet/freescale/enetc/enetc_ethtool.c b/drivers/net/ethernet/freescale/enetc/enetc_ethtool.c index d14182401d81..1a8fae3c406b 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_ethtool.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_ethtool.c @@ -677,6 +677,14 @@ static u32 enetc_get_rxfh_indir_size(struct net_device *ndev) return priv->si->num_rss; } +static int enetc_get_rss_key_base(struct enetc_si *si) +{ + if (is_enetc_rev1(si)) + return ENETC_PRSSK(0); + + return ENETC4_PRSSKR(0); +} + static int enetc_get_rxfh(struct net_device *ndev, struct ethtool_rxfh_param *rxfh) { @@ -701,12 +709,14 @@ static int enetc_get_rxfh(struct net_device *ndev, return err; } -void enetc_set_rss_key(struct enetc_hw *hw, const u8 *bytes) +void enetc_set_rss_key(struct enetc_si *si, const u8 *bytes) { + int base = enetc_get_rss_key_base(si); + struct enetc_hw *hw = &si->hw; int i; for (i = 0; i < ENETC_RSSHASH_KEY_SIZE / 4; i++) - enetc_port_wr(hw, ENETC_PRSSK(i), ((u32 *)bytes)[i]); + enetc_port_wr(hw, base + i * 4, ((u32 *)bytes)[i]); } EXPORT_SYMBOL_GPL(enetc_set_rss_key); @@ -716,12 +726,11 @@ static int enetc_set_rxfh(struct net_device *ndev, { struct enetc_ndev_priv *priv = netdev_priv(ndev); struct enetc_si *si = priv->si; - struct enetc_hw *hw = &si->hw; int err = 0; /* set hash key, if PF */ - if (rxfh->key && hw->port) - enetc_set_rss_key(hw, rxfh->key); + if (rxfh->key && enetc_si_is_pf(si)) + enetc_set_rss_key(si, rxfh->key); /* set RSS table */ if (rxfh->indir) diff --git a/drivers/net/ethernet/freescale/enetc/enetc_pf.c b/drivers/net/ethernet/freescale/enetc/enetc_pf.c index 097a5b50e448..38ec7657b9aa 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_pf.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.c @@ -523,7 +523,7 @@ static void enetc_configure_port(struct enetc_pf *pf) /* set up hash key */ get_random_bytes(hash_key, ENETC_RSSHASH_KEY_SIZE); - enetc_set_rss_key(hw, hash_key); + enetc_set_rss_key(pf->si, hash_key); /* split up RFS entries */ enetc_port_assign_rfs_entries(pf->si);