Received: by 2002:a05:6359:c8b:b0:c7:702f:21d4 with SMTP id go11csp1678579rwb; Tue, 27 Sep 2022 17:12:43 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5al2AAIJPthNYRcKl1oMTRb1bWLwy2U8jedGdov/vg4PcUb5Gb3pKoRsBmLYgCNoaL1fR4 X-Received: by 2002:a17:907:75c7:b0:779:bf7:9be7 with SMTP id jl7-20020a17090775c700b007790bf79be7mr25230499ejc.432.1664323963651; Tue, 27 Sep 2022 17:12:43 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1664323963; cv=pass; d=google.com; s=arc-20160816; b=eK1bddCFPruqgoI2PqNCeOJDzMRCm+ijJu5m2tzIPRVQ6RKY46/t8/iwAdAS44Nvzw geU5qrTsJjAXWMTaoIl0oUzwnEsrAoUFiKfm6yfg5JcZ7ggC22xtsFZeXnXL6VmOEm37 lSTSu5Djas0KgS3SYa7xKGNzyfXPIp8kRUCEvwv382qR517vrs8gbwW428VlETaxAq9M xwSsHnHaM/rFiJNXWfNekDOpGVk1WaHK5rWZWJKPM/qALKi9GAkEALbXROsKx7FVzT42 bWTwX08pjJZjQoLmTlWWUuVLUA7JOj+DdYY4pybgj60iaOiK60jTGWJqL+U6ituSXn2r Rnfw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Y2k9KX2EBBb9iLWrxxR5a9exb4A/6QiqWvZjyuSoIaw=; b=UUyc/m9opgImdNtg60yCDNJKmz9YCnW/nDcYIzSuHlGaeH806awRfSsb4s2vfSZ4rI W2xhn1zzL5e8dF+o0falvD+1FddtxjYGOa6yDT74bjQlf+AEYSUJO6Eiu7tNxcp4IYHZ G7QGE7/5NptVYWbOQ4GTYX/Kv3j8+VRB1ZKGt7SLyVJnpn12mY9lOlTg9zuVqSQ7yLLh sAYEgGnkzZaKs0X/yuG78nbgjhS2x3YbNE9wS/UwLpaHO24lRACbp5nmi/w9/9BhoEaW NUhwyWfYbdJU0ZyutGWyUbZMr8TamihxsL+DmRl5FYfSb7LDebk8tDuKXEB/YuW5awDH MbIg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b="PJXir/94"; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id v14-20020a17090606ce00b00778995de77csi2410348ejb.605.2022.09.27.17.12.15; Tue, 27 Sep 2022 17:12:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b="PJXir/94"; arc=pass (i=1 spf=pass spfdomain=nxp.com dkim=pass dkdomain=nxp.com dmarc=pass fromdomain=nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231985AbiI0Xt2 (ORCPT + 99 others); Tue, 27 Sep 2022 19:49:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55514 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232414AbiI0Xsw (ORCPT ); Tue, 27 Sep 2022 19:48:52 -0400 Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70084.outbound.protection.outlook.com [40.107.7.84]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 367A11D73D4; Tue, 27 Sep 2022 16:48:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OnCp8DFYEJrJsUpkLmj31cZSEoIazzLkiJxM62mx0AIUxwZ5S0o6MgtFjOwB2McnEdoWp5ug7/Ee21cn47/XSSP7mNYEZ/DTDvDBn8p2XpQlLP1kcOjDQMAao0pTQT9JrgPWbV4Hb1okSavpvTs+O+WcOTUFLt6/30J6T6q2abiOhxBJSMVYBaFtkclSTLjPLkvUNhau640ablXL/LoSoggWAjiA+ukv5Fx24+zzxcY/WRR0lpkLRwPQQh0dqQ6+i7YbLzGH3m7qwFz5NDmmuYxURhJ9iNOIGxkErjsePCErM94IiEv3CD+dzCkqOQjXfQvzD46GDG84FrHuT6dXEg== 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=Y2k9KX2EBBb9iLWrxxR5a9exb4A/6QiqWvZjyuSoIaw=; b=n9A0w9FdR/4rbibx1Nd184AcqNt4CCvZoWYRB3HTtd3GED/lg9J5ObWWA4wKfWvvs8v450bw2wgyFwCR9gtlLPesN0CM2r2KJI/p4yVrH2a+UJPCsQwXxN3refe2SW3PCEE260KS/j0GQU+K2t7cuYB3xgaZ8OJp/mArLK0MiRxAoP/j0tidOLyBoxBHCAeRuqMv4hizzWzUlFwoBUykPS0qcFzo0RVNYdB+wd7fqgytJaEA0E1o9VZAKxbPs6TmbvOGAaVIa9ityG0obxXz7+9NAniYnxKFET17YPfPr44hAExCrwSiLzJhYiurfJYHKtq7CHm0rPFfE/D6bLOZDA== 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=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Y2k9KX2EBBb9iLWrxxR5a9exb4A/6QiqWvZjyuSoIaw=; b=PJXir/94bMgAR/j/QfnVDzoLNVrboHzvg42Xh+Dh/HlwhZtm4iDQFvcuPDBv2rJVISuTfHILk6pc1im1xhV04sfTwe+zhgl9EdKOV3fFXLj75OiuSH4SJoWBXHuChtID7Nrn4lYbc15RqUjxsdZe3LGIxpnjROvu/svYVDcSBxQ= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from VI1PR04MB5136.eurprd04.prod.outlook.com (2603:10a6:803:55::19) by DU0PR04MB9444.eurprd04.prod.outlook.com (2603:10a6:10:35c::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5654.20; Tue, 27 Sep 2022 23:48:07 +0000 Received: from VI1PR04MB5136.eurprd04.prod.outlook.com ([fe80::a67a:849c:aeff:cad1]) by VI1PR04MB5136.eurprd04.prod.outlook.com ([fe80::a67a:849c:aeff:cad1%7]) with mapi id 15.20.5654.025; Tue, 27 Sep 2022 23:48:07 +0000 From: Vladimir Oltean To: netdev@vger.kernel.org Cc: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Xiaoliang Yang , Rui Sousa , Claudiu Manoil , Alexandre Belloni , UNGLinuxDriver@microchip.com, Horatiu Vultur , Andrew Lunn , Vivien Didelot , Florian Fainelli , Michael Walle , Vinicius Costa Gomes , Maxim Kochetkov , Colin Foster , Richie Pearn , Kurt Kanzenbach , Vladimir Oltean , Jamal Hadi Salim , Cong Wang , Jiri Pirko , linux-kernel@vger.kernel.org Subject: [PATCH v3 net-next 6/8] net: enetc: cache accesses to &priv->si->hw Date: Wed, 28 Sep 2022 02:47:44 +0300 Message-Id: <20220927234746.1823648-7-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220927234746.1823648-1-vladimir.oltean@nxp.com> References: <20220927234746.1823648-1-vladimir.oltean@nxp.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: VI1PR0501CA0025.eurprd05.prod.outlook.com (2603:10a6:800:60::11) To VI1PR04MB5136.eurprd04.prod.outlook.com (2603:10a6:803:55::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI1PR04MB5136:EE_|DU0PR04MB9444:EE_ X-MS-Office365-Filtering-Correlation-Id: c49f7457-1cef-4508-0281-08daa0e2ba2f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 5NJSRbe4YOxLgTaAccdg6J/1GEuTAxaZVv7ne02iyohbYOSOA3aVKbtqlF6v0ls+5JJ/5/7fF2rO/fzIn1odWA8qxxzsdBhJW5LECAgR6l3skKBdFjxA0PrP0316wYh0JtbZmS4JQzpxYmR8rJDtiLlcGefwaY8u1+0jCBqClmJPcuFXgQfpM50OKHv6881s8Ncldt8DmwAe6m8LNVg8W9DMOgNT7QeW+TgZop5wUS8/PvdGrbc07OUE50BHl+89Q2iCfKA+KwVUZMchY+7SpmDFTKgiiKgdIcLV5+579NytSe7c7nXvhTWmc56bLooi6Cz/JpyHWmxGopTJRqF76HHOeq9rzEcQhgEQoTo0K65O84Bs+9LUJZyvNxObA9AjNtq5Qko/0cpDQ7ikOJXRdzi0Pw6i0HFuXHW2rDxTcSfsi6I1Owoq0J/BhIwDUV3mZH9UkmMVKC5YtguSSlR+qZAvmfKk9sDA/tunF0ms6mC+3plW7Ck+4nxcWeW4Mdpkm3xtYrl0xFhUpF+m4VotwW2w5qdVdWPrTsFr3hE8mmESqu08g8Id88zUI0lUrSbOZSBzv0JRQs2hXPcw4nOEFOgOCN2BVRieGYI81AF6Ka8jyrnNIyFmoUUtCi5HGsHXun4aZeqjQfBjoj2QisRv4anYryC84uCnkBBf7nW++IiAIKenHsQAX5OcN+LcuqYYGUFqO03GmsMvNE62yJAHq717QuD9wSNgbA/8Ap3mqCjcxSGqMO6HtxIaOe21yrHIW+nLGLXm14gbcaTzSv+f2Q== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5136.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(136003)(366004)(376002)(39860400002)(396003)(346002)(451199015)(7416002)(30864003)(6512007)(41300700001)(6666004)(36756003)(6486002)(38350700002)(6506007)(6916009)(8676002)(86362001)(66476007)(4326008)(26005)(52116002)(8936002)(66946007)(83380400001)(38100700002)(316002)(54906003)(186003)(1076003)(2906002)(5660300002)(66556008)(478600001)(44832011)(2616005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Lu74FOQwvaRy2IKz3YTNaJOh2/vI/FP8Q3iukjtiXFR+bY+O9QScd8ofzmg9?= =?us-ascii?Q?3SMCwHxD0F905LVSVcdo6TT29EoE4NeNJoehKIN089ZW/GjV7R/Cctuma7/A?= =?us-ascii?Q?ugi7XB9YN2n0uxn63CB9BCV/DXtco9ElUPlSbejf633PaVv0WSYRPkCBm7Tf?= =?us-ascii?Q?1AaAVEmtDG0cCfel9Lxh5OuSChNJ2p5YqVbdx594D5YRWMLgcpwLJFN0C4uE?= =?us-ascii?Q?1zamdTfPGF9tQqwgVH5QPGAETXRpFFq1FCmTVDCGqG5OzB32BK0x4E713kc7?= =?us-ascii?Q?aB+MuemtjTG44Vvgt9VzGBrX5eG3eJZpasoivzT1K4fGIeIOEtwNKkDdm0cs?= =?us-ascii?Q?onkLuPOBlRXMe7PnW4GqXcMMP/4wP/56Zc+Xg30ekAemSRenWF9UeVo3uMBW?= =?us-ascii?Q?v8tsCWg/knftV2MPfda0izT3cdhsjYpfNsB0LrUz+9trkdDKbf4GCFBmpNo9?= =?us-ascii?Q?YH8BwgqGUsDQBxbFlr2kAU3u+68cB6+6EWsxue2ZjciZ4kIqnyLqIhDmia9P?= =?us-ascii?Q?V6HBWwG0r+rdSKwzmrmH5yBKcwFaM/7TPxagKdQw+HIymzCOISiRJOiirS8n?= =?us-ascii?Q?eXWWCwZbnAEliGznVd394wYWvU/zHQlKohhHb+XVqlF6dEaC3HfbcXucKO1A?= =?us-ascii?Q?hVhIWBwsMgBFvIQmuQnotMEzDGrFHsQQTxihBpIkogG+NAghm4jScHwTR3P4?= =?us-ascii?Q?SoiHUKclUuVBlTlZ+3gDTL9Wz3G7Dgw6P7G6dk9ywv7vHGfvPpzdP/GU9AWL?= =?us-ascii?Q?JHYGSFDVCRAiKAPq5Hf8EzIEqy3Rj152XyIAfnJW3wPW1OG3V+HpYQXTugZi?= =?us-ascii?Q?0sSmBljAq2D51DX9gSzcQlK3AMRczSZb/0MKAAEnw4AafgKzACGAxX3e6LbF?= =?us-ascii?Q?kN3e/qQ5N54brbt9pvMKpjUWAtZLFECgZHXcuKvt1Cs5hQl5tyvIbxkixamr?= =?us-ascii?Q?myQan8FaENfvrAxDnddVzG0DozY13fnekOKoiUtq6zb2CE+7xGhHkqo5KTdn?= =?us-ascii?Q?FGuqfMvuCviPhosg3+Vfox7CyST3Z9l7xPzqY1sD5rMus3Q/o4kcpQ0KdrDg?= =?us-ascii?Q?wqmg+vExBVgfNyq1d6eaAA6Q49Gj8f+rDM/PfeByx1CJhkdsktjRfAjGKLgh?= =?us-ascii?Q?W20H3QdpgLueMK3Rd2lyG5WQ3cjW7wT2h3oUNoQ305y29BKW7+OzdSBgFWTC?= =?us-ascii?Q?zIYs9ooLtlZNFpF1MptLVH5UqY+KbIlwKGst+1GWiCy9NpEHIjt80ZXd66hm?= =?us-ascii?Q?RNSuTFl+HVGrSRwARV7ojLQ1gO4uVdkowXQKTZVn6fPwIhdJGhyF4ElV1bb6?= =?us-ascii?Q?re2KPcRiOQXg9UQkA292NZqTB/8wRlkbEB6M3zStyfc+HXSguAcqg2/CjSMC?= =?us-ascii?Q?cyMYpbm1at4N51eABLk1z5/TpTVfCQJVVCDu1Voc2IC5x8LerYSEg+IoPqlJ?= =?us-ascii?Q?gF8taejVmpi/WqiiloLb/vXQECi2lA+gICTbyyiL85q88L9GW6wYKLVQdLm9?= =?us-ascii?Q?tB11Q0cdqk7ykKqYvfxTLfOT8pYFrR3a1OMJjrlPo0ecZHgwSEF7LUIFmTyu?= =?us-ascii?Q?rnswixogIu/OxE71563kBLvlAWHwhlI+i70wi/sP5eZnicnNV/pF5D5QGGlj?= =?us-ascii?Q?OQ=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: c49f7457-1cef-4508-0281-08daa0e2ba2f X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5136.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Sep 2022 23:48:07.4761 (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: 163ghyLkmY4pxUfrMbIQEKS9x2LxzmeH5jwvOLRDaSICdPcQWB+htJUPcon73ntXk2myc3W01fWLDUw9mnS3oA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR04MB9444 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The &priv->si->hw construct dereferences 2 pointers and makes lines longer than they need to be, in turn making the code harder to read. Replace &priv->si->hw accesses with a "hw" variable when there are 2 or more accesses within a function that dereference this. This includes loops, since &priv->si->hw is a loop invariant. Signed-off-by: Vladimir Oltean --- v1->v3: none drivers/net/ethernet/freescale/enetc/enetc.c | 28 +++++---- drivers/net/ethernet/freescale/enetc/enetc.h | 9 +-- .../net/ethernet/freescale/enetc/enetc_qos.c | 60 +++++++++---------- 3 files changed, 49 insertions(+), 48 deletions(-) diff --git a/drivers/net/ethernet/freescale/enetc/enetc.c b/drivers/net/ethernet/freescale/enetc/enetc.c index 9f5b921039bd..151fb3fa4806 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc.c +++ b/drivers/net/ethernet/freescale/enetc/enetc.c @@ -2116,13 +2116,14 @@ static void enetc_setup_rxbdr(struct enetc_hw *hw, struct enetc_bdr *rx_ring) static void enetc_setup_bdrs(struct enetc_ndev_priv *priv) { + struct enetc_hw *hw = &priv->si->hw; int i; for (i = 0; i < priv->num_tx_rings; i++) - enetc_setup_txbdr(&priv->si->hw, priv->tx_ring[i]); + enetc_setup_txbdr(hw, priv->tx_ring[i]); for (i = 0; i < priv->num_rx_rings; i++) - enetc_setup_rxbdr(&priv->si->hw, priv->rx_ring[i]); + enetc_setup_rxbdr(hw, priv->rx_ring[i]); } static void enetc_clear_rxbdr(struct enetc_hw *hw, struct enetc_bdr *rx_ring) @@ -2155,13 +2156,14 @@ static void enetc_clear_txbdr(struct enetc_hw *hw, struct enetc_bdr *tx_ring) static void enetc_clear_bdrs(struct enetc_ndev_priv *priv) { + struct enetc_hw *hw = &priv->si->hw; int i; for (i = 0; i < priv->num_tx_rings; i++) - enetc_clear_txbdr(&priv->si->hw, priv->tx_ring[i]); + enetc_clear_txbdr(hw, priv->tx_ring[i]); for (i = 0; i < priv->num_rx_rings; i++) - enetc_clear_rxbdr(&priv->si->hw, priv->rx_ring[i]); + enetc_clear_rxbdr(hw, priv->rx_ring[i]); udelay(1); } @@ -2169,13 +2171,13 @@ static void enetc_clear_bdrs(struct enetc_ndev_priv *priv) static int enetc_setup_irqs(struct enetc_ndev_priv *priv) { struct pci_dev *pdev = priv->si->pdev; + struct enetc_hw *hw = &priv->si->hw; int i, j, err; for (i = 0; i < priv->bdr_int_num; i++) { int irq = pci_irq_vector(pdev, ENETC_BDR_INT_BASE_IDX + i); struct enetc_int_vector *v = priv->int_vector[i]; int entry = ENETC_BDR_INT_BASE_IDX + i; - struct enetc_hw *hw = &priv->si->hw; snprintf(v->name, sizeof(v->name), "%s-rxtx%d", priv->ndev->name, i); @@ -2263,13 +2265,14 @@ static void enetc_setup_interrupts(struct enetc_ndev_priv *priv) static void enetc_clear_interrupts(struct enetc_ndev_priv *priv) { + struct enetc_hw *hw = &priv->si->hw; int i; for (i = 0; i < priv->num_tx_rings; i++) - enetc_txbdr_wr(&priv->si->hw, i, ENETC_TBIER, 0); + enetc_txbdr_wr(hw, i, ENETC_TBIER, 0); for (i = 0; i < priv->num_rx_rings; i++) - enetc_rxbdr_wr(&priv->si->hw, i, ENETC_RBIER, 0); + enetc_rxbdr_wr(hw, i, ENETC_RBIER, 0); } static int enetc_phylink_connect(struct net_device *ndev) @@ -2436,6 +2439,7 @@ int enetc_setup_tc_mqprio(struct net_device *ndev, void *type_data) { struct enetc_ndev_priv *priv = netdev_priv(ndev); struct tc_mqprio_qopt *mqprio = type_data; + struct enetc_hw *hw = &priv->si->hw; struct enetc_bdr *tx_ring; int num_stack_tx_queues; u8 num_tc; @@ -2452,7 +2456,7 @@ int enetc_setup_tc_mqprio(struct net_device *ndev, void *type_data) /* Reset all ring priorities to 0 */ for (i = 0; i < priv->num_tx_rings; i++) { tx_ring = priv->tx_ring[i]; - enetc_set_bdr_prio(&priv->si->hw, tx_ring->index, 0); + enetc_set_bdr_prio(hw, tx_ring->index, 0); } return 0; @@ -2471,7 +2475,7 @@ int enetc_setup_tc_mqprio(struct net_device *ndev, void *type_data) */ for (i = 0; i < num_tc; i++) { tx_ring = priv->tx_ring[i]; - enetc_set_bdr_prio(&priv->si->hw, tx_ring->index, i); + enetc_set_bdr_prio(hw, tx_ring->index, i); } /* Reset the number of netdev queues based on the TC count */ @@ -2584,19 +2588,21 @@ static int enetc_set_rss(struct net_device *ndev, int en) static void enetc_enable_rxvlan(struct net_device *ndev, bool en) { struct enetc_ndev_priv *priv = netdev_priv(ndev); + struct enetc_hw *hw = &priv->si->hw; int i; for (i = 0; i < priv->num_rx_rings; i++) - enetc_bdr_enable_rxvlan(&priv->si->hw, i, en); + enetc_bdr_enable_rxvlan(hw, i, en); } static void enetc_enable_txvlan(struct net_device *ndev, bool en) { struct enetc_ndev_priv *priv = netdev_priv(ndev); + struct enetc_hw *hw = &priv->si->hw; int i; for (i = 0; i < priv->num_tx_rings; i++) - enetc_bdr_enable_txvlan(&priv->si->hw, i, en); + enetc_bdr_enable_txvlan(hw, i, en); } void enetc_set_features(struct net_device *ndev, netdev_features_t features) diff --git a/drivers/net/ethernet/freescale/enetc/enetc.h b/drivers/net/ethernet/freescale/enetc/enetc.h index 2cfe6944ebd3..748677b2ce1f 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc.h +++ b/drivers/net/ethernet/freescale/enetc/enetc.h @@ -467,19 +467,20 @@ int enetc_set_psfp(struct net_device *ndev, bool en); static inline void enetc_get_max_cap(struct enetc_ndev_priv *priv) { + struct enetc_hw *hw = &priv->si->hw; u32 reg; - reg = enetc_port_rd(&priv->si->hw, ENETC_PSIDCAPR); + reg = enetc_port_rd(hw, ENETC_PSIDCAPR); priv->psfp_cap.max_streamid = reg & ENETC_PSIDCAPR_MSK; /* Port stream filter capability */ - reg = enetc_port_rd(&priv->si->hw, ENETC_PSFCAPR); + reg = enetc_port_rd(hw, ENETC_PSFCAPR); priv->psfp_cap.max_psfp_filter = reg & ENETC_PSFCAPR_MSK; /* Port stream gate capability */ - reg = enetc_port_rd(&priv->si->hw, ENETC_PSGCAPR); + reg = enetc_port_rd(hw, ENETC_PSGCAPR); priv->psfp_cap.max_psfp_gate = (reg & ENETC_PSGCAPR_SGIT_MSK); priv->psfp_cap.max_psfp_gatelist = (reg & ENETC_PSGCAPR_GCL_MSK) >> 16; /* Port flow meter capability */ - reg = enetc_port_rd(&priv->si->hw, ENETC_PFMCAPR); + reg = enetc_port_rd(hw, ENETC_PFMCAPR); priv->psfp_cap.max_psfp_meter = reg & ENETC_PFMCAPR_MSK; } diff --git a/drivers/net/ethernet/freescale/enetc/enetc_qos.c b/drivers/net/ethernet/freescale/enetc/enetc_qos.c index f8a2f02ce22d..2e783ef73690 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_qos.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_qos.c @@ -17,8 +17,9 @@ static u16 enetc_get_max_gcl_len(struct enetc_hw *hw) void enetc_sched_speed_set(struct enetc_ndev_priv *priv, int speed) { + struct enetc_hw *hw = &priv->si->hw; u32 old_speed = priv->speed; - u32 pspeed; + u32 pspeed, tmp; if (speed == old_speed) return; @@ -39,16 +40,15 @@ void enetc_sched_speed_set(struct enetc_ndev_priv *priv, int speed) } priv->speed = speed; - enetc_port_wr(&priv->si->hw, ENETC_PMR, - (enetc_port_rd(&priv->si->hw, ENETC_PMR) - & (~ENETC_PMR_PSPEED_MASK)) - | pspeed); + tmp = enetc_port_rd(hw, ENETC_PMR); + enetc_port_wr(hw, ENETC_PMR, (tmp & ~ENETC_PMR_PSPEED_MASK) | pspeed); } static int enetc_setup_taprio(struct net_device *ndev, struct tc_taprio_qopt_offload *admin_conf) { struct enetc_ndev_priv *priv = netdev_priv(ndev); + struct enetc_hw *hw = &priv->si->hw; struct enetc_cbd cbd = {.cmd = 0}; struct tgs_gcl_conf *gcl_config; struct tgs_gcl_data *gcl_data; @@ -61,15 +61,13 @@ static int enetc_setup_taprio(struct net_device *ndev, int err; int i; - if (admin_conf->num_entries > enetc_get_max_gcl_len(&priv->si->hw)) + if (admin_conf->num_entries > enetc_get_max_gcl_len(hw)) return -EINVAL; gcl_len = admin_conf->num_entries; - tge = enetc_rd(&priv->si->hw, ENETC_QBV_PTGCR_OFFSET); + tge = enetc_rd(hw, ENETC_QBV_PTGCR_OFFSET); if (!admin_conf->enable) { - enetc_wr(&priv->si->hw, - ENETC_QBV_PTGCR_OFFSET, - tge & (~ENETC_QBV_TGE)); + enetc_wr(hw, ENETC_QBV_PTGCR_OFFSET, tge & ~ENETC_QBV_TGE); priv->active_offloads &= ~ENETC_F_QBV; @@ -117,14 +115,11 @@ static int enetc_setup_taprio(struct net_device *ndev, cbd.cls = BDCR_CMD_PORT_GCL; cbd.status_flags = 0; - enetc_wr(&priv->si->hw, ENETC_QBV_PTGCR_OFFSET, - tge | ENETC_QBV_TGE); + enetc_wr(hw, ENETC_QBV_PTGCR_OFFSET, tge | ENETC_QBV_TGE); err = enetc_send_cmd(priv->si, &cbd); if (err) - enetc_wr(&priv->si->hw, - ENETC_QBV_PTGCR_OFFSET, - tge & (~ENETC_QBV_TGE)); + enetc_wr(hw, ENETC_QBV_PTGCR_OFFSET, tge & ~ENETC_QBV_TGE); enetc_cbd_free_data_mem(priv->si, data_size, tmp, &dma); @@ -138,6 +133,7 @@ int enetc_setup_tc_taprio(struct net_device *ndev, void *type_data) { struct tc_taprio_qopt_offload *taprio = type_data; struct enetc_ndev_priv *priv = netdev_priv(ndev); + struct enetc_hw *hw = &priv->si->hw; int err; int i; @@ -147,16 +143,14 @@ int enetc_setup_tc_taprio(struct net_device *ndev, void *type_data) return -EBUSY; for (i = 0; i < priv->num_tx_rings; i++) - enetc_set_bdr_prio(&priv->si->hw, - priv->tx_ring[i]->index, + enetc_set_bdr_prio(hw, priv->tx_ring[i]->index, taprio->enable ? i : 0); err = enetc_setup_taprio(ndev, taprio); if (err) for (i = 0; i < priv->num_tx_rings; i++) - enetc_set_bdr_prio(&priv->si->hw, - priv->tx_ring[i]->index, + enetc_set_bdr_prio(hw, priv->tx_ring[i]->index, taprio->enable ? 0 : i); return err; @@ -178,7 +172,7 @@ int enetc_setup_tc_cbs(struct net_device *ndev, void *type_data) struct tc_cbs_qopt_offload *cbs = type_data; u32 port_transmit_rate = priv->speed; u8 tc_nums = netdev_get_num_tc(ndev); - struct enetc_si *si = priv->si; + struct enetc_hw *hw = &priv->si->hw; u32 hi_credit_bit, hi_credit_reg; u32 max_interference_size; u32 port_frame_max_size; @@ -199,15 +193,15 @@ int enetc_setup_tc_cbs(struct net_device *ndev, void *type_data) * lower than this TC have been disabled. */ if (tc == prio_top && - enetc_get_cbs_enable(&si->hw, prio_next)) { + enetc_get_cbs_enable(hw, prio_next)) { dev_err(&ndev->dev, "Disable TC%d before disable TC%d\n", prio_next, tc); return -EINVAL; } - enetc_port_wr(&si->hw, ENETC_PTCCBSR1(tc), 0); - enetc_port_wr(&si->hw, ENETC_PTCCBSR0(tc), 0); + enetc_port_wr(hw, ENETC_PTCCBSR1(tc), 0); + enetc_port_wr(hw, ENETC_PTCCBSR0(tc), 0); return 0; } @@ -224,13 +218,13 @@ int enetc_setup_tc_cbs(struct net_device *ndev, void *type_data) * higher than this TC have been enabled. */ if (tc == prio_next) { - if (!enetc_get_cbs_enable(&si->hw, prio_top)) { + if (!enetc_get_cbs_enable(hw, prio_top)) { dev_err(&ndev->dev, "Enable TC%d first before enable TC%d\n", prio_top, prio_next); return -EINVAL; } - bw_sum += enetc_get_cbs_bw(&si->hw, prio_top); + bw_sum += enetc_get_cbs_bw(hw, prio_top); } if (bw_sum + bw >= 100) { @@ -239,7 +233,7 @@ int enetc_setup_tc_cbs(struct net_device *ndev, void *type_data) return -EINVAL; } - enetc_port_rd(&si->hw, ENETC_PTCMSDUR(tc)); + enetc_port_rd(hw, ENETC_PTCMSDUR(tc)); /* For top prio TC, the max_interfrence_size is maxSizedFrame. * @@ -259,8 +253,8 @@ int enetc_setup_tc_cbs(struct net_device *ndev, void *type_data) u32 m0, ma, r0, ra; m0 = port_frame_max_size * 8; - ma = enetc_port_rd(&si->hw, ENETC_PTCMSDUR(prio_top)) * 8; - ra = enetc_get_cbs_bw(&si->hw, prio_top) * + ma = enetc_port_rd(hw, ENETC_PTCMSDUR(prio_top)) * 8; + ra = enetc_get_cbs_bw(hw, prio_top) * port_transmit_rate * 10000ULL; r0 = port_transmit_rate * 1000000ULL; max_interference_size = m0 + ma + @@ -280,10 +274,10 @@ int enetc_setup_tc_cbs(struct net_device *ndev, void *type_data) hi_credit_reg = (u32)div_u64((ENETC_CLK * 100ULL) * hi_credit_bit, port_transmit_rate * 1000000ULL); - enetc_port_wr(&si->hw, ENETC_PTCCBSR1(tc), hi_credit_reg); + enetc_port_wr(hw, ENETC_PTCCBSR1(tc), hi_credit_reg); /* Set bw register and enable this traffic class */ - enetc_port_wr(&si->hw, ENETC_PTCCBSR0(tc), bw | ENETC_CBSE); + enetc_port_wr(hw, ENETC_PTCCBSR0(tc), bw | ENETC_CBSE); return 0; } @@ -293,6 +287,7 @@ int enetc_setup_tc_txtime(struct net_device *ndev, void *type_data) struct enetc_ndev_priv *priv = netdev_priv(ndev); struct tc_etf_qopt_offload *qopt = type_data; u8 tc_nums = netdev_get_num_tc(ndev); + struct enetc_hw *hw = &priv->si->hw; int tc; if (!tc_nums) @@ -304,12 +299,11 @@ int enetc_setup_tc_txtime(struct net_device *ndev, void *type_data) return -EINVAL; /* TSD and Qbv are mutually exclusive in hardware */ - if (enetc_rd(&priv->si->hw, ENETC_QBV_PTGCR_OFFSET) & ENETC_QBV_TGE) + if (enetc_rd(hw, ENETC_QBV_PTGCR_OFFSET) & ENETC_QBV_TGE) return -EBUSY; priv->tx_ring[tc]->tsd_enable = qopt->enable; - enetc_port_wr(&priv->si->hw, ENETC_PTCTSDR(tc), - qopt->enable ? ENETC_TSDE : 0); + enetc_port_wr(hw, ENETC_PTCTSDR(tc), qopt->enable ? ENETC_TSDE : 0); return 0; } -- 2.34.1