get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/132699/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 132699,
    "url": "http://patchwork.dpdk.org/api/patches/132699/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20231017054545.1692509-10-chaoyong.he@corigine.com/",
    "project": {
        "id": 1,
        "url": "http://patchwork.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20231017054545.1692509-10-chaoyong.he@corigine.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20231017054545.1692509-10-chaoyong.he@corigine.com",
    "date": "2023-10-17T05:45:29",
    "name": "[09/25] net/nfp: change the parameter of APIs",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "882a0bd63320324a7be1070490fba1aabac4c793",
    "submitter": {
        "id": 2554,
        "url": "http://patchwork.dpdk.org/api/people/2554/?format=api",
        "name": "Chaoyong He",
        "email": "chaoyong.he@corigine.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patchwork.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20231017054545.1692509-10-chaoyong.he@corigine.com/mbox/",
    "series": [
        {
            "id": 29865,
            "url": "http://patchwork.dpdk.org/api/series/29865/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=29865",
            "date": "2023-10-17T05:45:20",
            "name": "add the NFP vDPA PMD",
            "version": 1,
            "mbox": "http://patchwork.dpdk.org/series/29865/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/132699/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/132699/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "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])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 4197B43186;\n\tTue, 17 Oct 2023 07:47:25 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id A7C3141144;\n\tTue, 17 Oct 2023 07:46:35 +0200 (CEST)",
            "from NAM12-MW2-obe.outbound.protection.outlook.com\n (mail-mw2nam12on2096.outbound.protection.outlook.com [40.107.244.96])\n by mails.dpdk.org (Postfix) with ESMTP id 894C740ED2\n for <dev@dpdk.org>; Tue, 17 Oct 2023 07:46:33 +0200 (CEST)",
            "from PH0PR13MB5568.namprd13.prod.outlook.com (2603:10b6:510:12b::16)\n by MW5PR13MB5904.namprd13.prod.outlook.com (2603:10b6:303:1ce::13)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6863.45; Tue, 17 Oct\n 2023 05:46:31 +0000",
            "from PH0PR13MB5568.namprd13.prod.outlook.com\n ([fe80::b070:92e1:931e:fee7]) by PH0PR13MB5568.namprd13.prod.outlook.com\n ([fe80::b070:92e1:931e:fee7%4]) with mapi id 15.20.6863.047; Tue, 17 Oct 2023\n 05:46:31 +0000"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=cDCtTEZPAltNIkeKoaby4ChzxA7SOcpX3Lv4vugKpI/5MQEx0+F/ESGDbmPXCZiEKw9wJsDyFnesWxHSaIK3eI+thDBVHMIaUJg2x/9SyITGRC9WmKiY4fwUdzRyeG6RuZaJ5ft/Htux7/a9Q8Z3VE+45+BhTQDFB1PppwLYoF2PSAlgC4WVB20SBC78Rn/4mdaEibQjwaBW9rxZSIs7aZN2PPQwPj07njS/Kcvj95i+sx2RXo0tFyy04ZhNuSU2A7WkGrLLBz0zXwIH0QcUJik09UYduRap3dXdyvy95mp3X1BKWlRtVyDqHp7h2X+1kcUd/f5AYzsSQv7IeUKrtA==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n 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;\n bh=/IkqEy5YaFqlFi5U31eiN5XkY5YdE0aZGaKCaRV7f9A=;\n b=LIZnf50FTtVCqiykbd64ZU1KNF5JREYhDY9MZzyH3J0/n9TbmGjjCtAcckhThNhE8JqKbvfB3UCGdrKv6by2xk5tYmyVl38PUv2GvFSN75/GIlPzIPrBPXCjq5TlEEZJJtoAzziPPHW69P1zFLj7tU6H8t7e4BRyYRC05+rmHz1gjJW4L03nywWocBdnJGwmPcHiYH5YbTlaE+n+ozVMamqlas4+hq2aFalb5FviwLQVOZenFiWERAkXAlZNsKirX0qYuoVDrNwdZ33yNjZROanNdSRLyS4byXRlnMKAlVcZzwTi0QTBkSGeN8isew5yWpWNvEvZoLpcSAm24U/WhQ==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com;\n dkim=pass header.d=corigine.com; arc=none",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=/IkqEy5YaFqlFi5U31eiN5XkY5YdE0aZGaKCaRV7f9A=;\n b=VILzV3/+FXI54JagF74xDUMOGLbxItC4bSAM8Mm6o7GQ59Xa2UCE325boMJbRkcrc9Q2tvZfXMUcfnrcI7jtEkzhAY06yqXGgKCZXODfpH9x2P2WBEiYjdaKX0DfK3YnqFPhF+pv1BzTxjlIFeup+uyAU5YTUajOciZLzx0vl58=",
        "Authentication-Results": "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=corigine.com;",
        "From": "Chaoyong He <chaoyong.he@corigine.com>",
        "To": "dev@dpdk.org",
        "Cc": "oss-drivers@corigine.com, Chaoyong He <chaoyong.he@corigine.com>,\n Long Wu <long.wu@corigine.com>, Peng Zhang <peng.zhang@corigine.com>",
        "Subject": "[PATCH 09/25] net/nfp: change the parameter of APIs",
        "Date": "Tue, 17 Oct 2023 13:45:29 +0800",
        "Message-Id": "<20231017054545.1692509-10-chaoyong.he@corigine.com>",
        "X-Mailer": "git-send-email 2.39.1",
        "In-Reply-To": "<20231017054545.1692509-1-chaoyong.he@corigine.com>",
        "References": "<20231017054545.1692509-1-chaoyong.he@corigine.com>",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-ClientProxiedBy": "PH7PR17CA0069.namprd17.prod.outlook.com\n (2603:10b6:510:325::29) To PH0PR13MB5568.namprd13.prod.outlook.com\n (2603:10b6:510:12b::16)",
        "MIME-Version": "1.0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "PH0PR13MB5568:EE_|MW5PR13MB5904:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "52889de3-02e8-42aa-0284-08dbced468e3",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n zL/Z9jGc6WHj2BrvWqMtKGiAcs6ia6Ca6UPkjhUbXCzXKEOnfoXWFjVEISOOd1VKahVNlu5CLyKL6vf4L4SZyGLdtWyjTyTn+DqKqBo4qv1iAOiL4BYpDQZYGZPKkYGJ2+jSy4iI4Z8rgTe4VaG8ruG+18bBWKAa3o9z2n6RYtecUe/C4t8puzO+aZi9eUx3F4zL1qcuow1oVvhs5Qnn3dVQSSzrbuuauxKffdEfF26EDr+76ka4qcFh/yAOoUhiJzHrhKU4FvoE1hO7lAsUoUV7AMMUnggKygcjQe6uClr4g469qMRjcgail1cnlxw8iiN+b1KKSrukH6czSjUzM3Db3Q+2GWMO0EqBaVuqXL5WekHYE69DoS+QsTUHQj1XobkAPW/IBbUPXwhLdEWiS1vlfiE2wC0yIp/GSWL6HSmpWdkL4Sv5y906duAcppyZ8G4vpxVAgEWESiLDJMHlu3vZmZ5pcm2MbMTErpCYAXsK6Iy5Geb6NSB9mH1XzLwfoZIRTHXoWiEyRj05KTLlWR42zkex5Q4oyn1GCwmo+CpsqeB9jdux5sPV8D+pxNO/IXKcpIwbEEFuyWDNrptXGuV12FoJpyvOF1WbXYUASYZLvkzJei06oB0oy+8C7RtMzK0/beNiwIGKYu0l9leQCN84B5Xy/2GblL/l83LZ6nw=",
        "X-Forefront-Antispam-Report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:PH0PR13MB5568.namprd13.prod.outlook.com; PTR:; CAT:NONE;\n SFS:(13230031)(136003)(366004)(376002)(39830400003)(346002)(396003)(230922051799003)(186009)(1800799009)(451199024)(64100799003)(2906002)(5660300002)(8936002)(8676002)(30864003)(83380400001)(66556008)(66476007)(6916009)(316002)(66946007)(54906003)(41300700001)(478600001)(4326008)(6486002)(44832011)(6512007)(6506007)(107886003)(38350700005)(2616005)(1076003)(26005)(36756003)(38100700002)(52116002)(86362001);\n DIR:OUT; SFP:1102;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "\n v9dT43dt1GAe/MMszDrFusj7qprUX6kLj3Kob5VHs40B9khWKFUJH4vTw6gyeb/DlrcO3HLoczoEjNQHpWHeqsOkoP/L0ODqhxtLBDAaJq6MZNJWK3wovt1+KjrfAmI8RlbXRy6ukPLtB2dMb/D9MZU8VuFU/tuAG2dofJ+qwQX62UQpPgjfpSDWNvekijqBjFNW8tO7hm8WwiH1/gu+WVpH1RfcwWrnAPgON7hBYXd5+R4IM92aufQob2Y8aTzYHUVhPYFE9LMhaE5ro9pdFobh2bPapFLUXpZ58f3MyHzkBpsEgBElUJsf/3+oZmUqZ0y2eseIo84GjMFRQeCZSmYlgChhgDepCXaHKyVKEtVWBcraKlG7dXDcQZmx1xZepeRt/H84EmNOe26nWDUU3MFkjqVd+vUz1GmK5MrjNuyHJo5GthMKvZXxYniEWoTc3HvcocCh2AC6MhsBtRI5AfDGn4VO8+iof5ZJ/jKbfvDT2wU77/EfBuiF4ZZrBJHrJGbO8rLfm2UTrpKhmfJjKDdfxx95h9s99uU/g1CHYQX3ZLmmdfruqJVk0YzihqUDNGGrkKcGUYDoqU9tla8I1GtXznXMJeknuGl7PnE2JQn5GC5UDkZV3egn3L9JaKeLd9oi01t3Vn+AkLasGGOH2Nsq8CSLb1gl588QYvFqJUh56p/+6kUqPhatpP2xQN9O7/Z0GHx7dvBRywQGkClPBemPzyfJeFcjM6ebOrLHIerFOp7ArBwpFMLlkRYCOvZetW6OBy7juiJ63rwfNn8hWgAvcjqqSQ/p470Trvl/7y0GcsbiwjWwo7IFpoZNE/+yJaxFHX179O75zSsjQzrcVvGxJRb9Xb6A1SN5thpUjfrvaRK4cYLrh6M2aCtUcctR7LNALZxatOGLW0cX/3qJv6vc6nDANV9QiabazwDZpEQ03vwi6EY4vFCNzGzPDtxbHnOiKLpABnDH/nwqJjD3X9YPgzI/vy64CdA62vPiuDvBebtMDjCQVd0wxG+51ELS5M2ghiBa4rbINZCis4Lr6cGsujniLY5cxHXtBqQ/3W2ltdlAIzf29m9K2kyFKvUSmnqlD5Oe5PHXUubHo+E49JCguLnyz3xmf/HMzQedke4KKOCkdQ5O7RCYKNckANjTLOEp55ZImST9H7Tq2IueVkp3c+GfrPA+VZ5FJDHA97AD3m6yVisvDk0MSh8Z+RM01AognygPPrWxZSiBrDjMbRsD+3rbZkgkNUfWsNBXnkHuCqjdumsAF1UN4u/bwkbLoMR5PzX6RB2xrUxKFEvbTQzGSfI6nlggdlDs3BHgptsHY3wvlUsML1npGsaxv7+uTMUlUk2fkujwufCV89rj7Y+n7kSvPMmbCpY9WKSVR5T9jfKDTpOcnAju2DJ11QF+gquaT5NCvGBwXfv3+7Xl3EUS9ILZMD+S2qvlgLgEiFYMnu7v9XIPJcdPpUGL9fr/6oGeHKs464bEgRcMp4OJGq7vril1lMagVPFz9FBCU9LruYPugg696H6cxS7F2TAKf5Dn7lSuw3U/eeEea65qXoqoD5WIAqKOyaK0YZ1AsbLrAzbGYolS87EMa+Yss4I6JrgCvFUuKesPD8Pt7XtOOA==",
        "X-OriginatorOrg": "corigine.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 52889de3-02e8-42aa-0284-08dbced468e3",
        "X-MS-Exchange-CrossTenant-AuthSource": "PH0PR13MB5568.namprd13.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "17 Oct 2023 05:46:30.9656 (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": "\n cH3V0jxHeJdSXqKfTCETjm398C/0PT4P5qbTGnsp9twBaxdxzXhZrKU3XIHYOi8JHjSCAEFAmCa+T7TLV9Ax7wLWBaJKPcHt/DHA7ZmsOM4=",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "MW5PR13MB5904",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org"
    },
    "content": "Change the parameter of some APIs from 'struct nfp_net_hw' into the\nsuper class 'struct nfp_hw', prepare for the upcoming common library.\n\nSigned-off-by: Chaoyong He <chaoyong.he@corigine.com>\nReviewed-by: Long Wu <long.wu@corigine.com>\nReviewed-by: Peng Zhang <peng.zhang@corigine.com>\n---\n drivers/net/nfp/flower/nfp_flower.c           |  24 ++--\n .../net/nfp/flower/nfp_flower_representor.c   |  10 +-\n drivers/net/nfp/nfd3/nfp_nfd3_dp.c            |   4 +-\n drivers/net/nfp/nfdk/nfp_nfdk_dp.c            |   4 +-\n drivers/net/nfp/nfp_ethdev.c                  |   8 +-\n drivers/net/nfp/nfp_ethdev_vf.c               |  12 +-\n drivers/net/nfp/nfp_ipsec.c                   |   4 +-\n drivers/net/nfp/nfp_net_common.c              | 129 +++++++++---------\n drivers/net/nfp/nfp_net_common.h              |  32 ++---\n drivers/net/nfp/nfp_rxtx.c                    |   4 +-\n 10 files changed, 116 insertions(+), 115 deletions(-)",
    "diff": "diff --git a/drivers/net/nfp/flower/nfp_flower.c b/drivers/net/nfp/flower/nfp_flower.c\nindex 2aa0d9939e..0fc1342740 100644\n--- a/drivers/net/nfp/flower/nfp_flower.c\n+++ b/drivers/net/nfp/flower/nfp_flower.c\n@@ -36,7 +36,7 @@ nfp_pf_repr_enable_queues(struct rte_eth_dev *dev)\n \tfor (i = 0; i < dev->data->nb_tx_queues; i++)\n \t\tenabled_queues |= (1 << i);\n \n-\tnn_cfg_writeq(hw, NFP_NET_CFG_TXRS_ENABLE, enabled_queues);\n+\tnn_cfg_writeq(&hw->super, NFP_NET_CFG_TXRS_ENABLE, enabled_queues);\n \n \tenabled_queues = 0;\n \n@@ -44,7 +44,7 @@ nfp_pf_repr_enable_queues(struct rte_eth_dev *dev)\n \tfor (i = 0; i < dev->data->nb_rx_queues; i++)\n \t\tenabled_queues |= (1 << i);\n \n-\tnn_cfg_writeq(hw, NFP_NET_CFG_RXRS_ENABLE, enabled_queues);\n+\tnn_cfg_writeq(&hw->super, NFP_NET_CFG_RXRS_ENABLE, enabled_queues);\n }\n \n static void\n@@ -58,8 +58,8 @@ nfp_pf_repr_disable_queues(struct rte_eth_dev *dev)\n \trepr = dev->data->dev_private;\n \thw = repr->app_fw_flower->pf_hw;\n \n-\tnn_cfg_writeq(hw, NFP_NET_CFG_TXRS_ENABLE, 0);\n-\tnn_cfg_writeq(hw, NFP_NET_CFG_RXRS_ENABLE, 0);\n+\tnn_cfg_writeq(&hw->super, NFP_NET_CFG_TXRS_ENABLE, 0);\n+\tnn_cfg_writeq(&hw->super, NFP_NET_CFG_RXRS_ENABLE, 0);\n \n \tnew_ctrl = hw->super.ctrl & ~NFP_NET_CFG_CTRL_ENABLE;\n \tupdate = NFP_NET_CFG_UPDATE_GEN | NFP_NET_CFG_UPDATE_RING |\n@@ -114,7 +114,7 @@ nfp_flower_pf_start(struct rte_eth_dev *dev)\n \tif ((hw->super.cap & NFP_NET_CFG_CTRL_RINGCFG) != 0)\n \t\tnew_ctrl |= NFP_NET_CFG_CTRL_RINGCFG;\n \n-\tnn_cfg_writel(hw, NFP_NET_CFG_CTRL, new_ctrl);\n+\tnn_cfg_writel(&hw->super, NFP_NET_CFG_CTRL, new_ctrl);\n \n \t/* If an error when reconfig we avoid to change hw state */\n \tret = nfp_net_reconfig(hw, new_ctrl, update);\n@@ -219,7 +219,7 @@ nfp_flower_pf_close(struct rte_eth_dev *dev)\n \t/* Cancel possible impending LSC work here before releasing the port */\n \trte_eal_alarm_cancel(nfp_net_dev_interrupt_delayed_handler, (void *)dev);\n \n-\tnn_cfg_writeb(hw, NFP_NET_CFG_LSC, 0xff);\n+\tnn_cfg_writeb(&hw->super, NFP_NET_CFG_LSC, 0xff);\n \n \trte_eth_dev_release_port(dev);\n \n@@ -358,9 +358,9 @@ nfp_flower_init_vnic_common(struct nfp_net_hw *hw,\n \t\treturn err;\n \n \t/* Work out where in the BAR the queues start */\n-\tstart_q = nn_cfg_readl(hw, NFP_NET_CFG_START_TXQ);\n+\tstart_q = nn_cfg_readl(&hw->super, NFP_NET_CFG_START_TXQ);\n \ttx_bar_off = (uint64_t)start_q * NFP_QCP_QUEUE_ADDR_SZ;\n-\tstart_q = nn_cfg_readl(hw, NFP_NET_CFG_START_RXQ);\n+\tstart_q = nn_cfg_readl(&hw->super, NFP_NET_CFG_START_RXQ);\n \trx_bar_off = (uint64_t)start_q * NFP_QCP_QUEUE_ADDR_SZ;\n \n \thw->tx_bar = pf_dev->qc_bar + tx_bar_off;\n@@ -545,8 +545,8 @@ nfp_flower_init_ctrl_vnic(struct nfp_net_hw *hw)\n \t\t * Telling the HW about the physical address of the RX ring and number\n \t\t * of descriptors in log2 format.\n \t\t */\n-\t\tnn_cfg_writeq(hw, NFP_NET_CFG_RXR_ADDR(i), rxq->dma);\n-\t\tnn_cfg_writeb(hw, NFP_NET_CFG_RXR_SZ(i), rte_log2_u32(CTRL_VNIC_NB_DESC));\n+\t\tnn_cfg_writeq(&hw->super, NFP_NET_CFG_RXR_ADDR(i), rxq->dma);\n+\t\tnn_cfg_writeb(&hw->super, NFP_NET_CFG_RXR_SZ(i), rte_log2_u32(CTRL_VNIC_NB_DESC));\n \t}\n \n \tsnprintf(ctrl_txring_name, sizeof(ctrl_txring_name), \"%s_cttx_ring\", pci_name);\n@@ -610,8 +610,8 @@ nfp_flower_init_ctrl_vnic(struct nfp_net_hw *hw)\n \t\t * Telling the HW about the physical address of the TX ring and number\n \t\t * of descriptors in log2 format.\n \t\t */\n-\t\tnn_cfg_writeq(hw, NFP_NET_CFG_TXR_ADDR(i), txq->dma);\n-\t\tnn_cfg_writeb(hw, NFP_NET_CFG_TXR_SZ(i), rte_log2_u32(CTRL_VNIC_NB_DESC));\n+\t\tnn_cfg_writeq(&hw->super, NFP_NET_CFG_TXR_ADDR(i), txq->dma);\n+\t\tnn_cfg_writeb(&hw->super, NFP_NET_CFG_TXR_SZ(i), rte_log2_u32(CTRL_VNIC_NB_DESC));\n \t}\n \n \treturn 0;\ndiff --git a/drivers/net/nfp/flower/nfp_flower_representor.c b/drivers/net/nfp/flower/nfp_flower_representor.c\nindex 650f09a475..b52c6f514a 100644\n--- a/drivers/net/nfp/flower/nfp_flower_representor.c\n+++ b/drivers/net/nfp/flower/nfp_flower_representor.c\n@@ -97,8 +97,8 @@ nfp_pf_repr_rx_queue_setup(struct rte_eth_dev *dev,\n \t * Telling the HW about the physical address of the RX ring and number\n \t * of descriptors in log2 format.\n \t */\n-\tnn_cfg_writeq(hw, NFP_NET_CFG_RXR_ADDR(queue_idx), rxq->dma);\n-\tnn_cfg_writeb(hw, NFP_NET_CFG_RXR_SZ(queue_idx), rte_log2_u32(nb_desc));\n+\tnn_cfg_writeq(&hw->super, NFP_NET_CFG_RXR_ADDR(queue_idx), rxq->dma);\n+\tnn_cfg_writeb(&hw->super, NFP_NET_CFG_RXR_SZ(queue_idx), rte_log2_u32(nb_desc));\n \n \treturn 0;\n }\n@@ -181,8 +181,8 @@ nfp_pf_repr_tx_queue_setup(struct rte_eth_dev *dev,\n \t * Telling the HW about the physical address of the TX ring and number\n \t * of descriptors in log2 format.\n \t */\n-\tnn_cfg_writeq(hw, NFP_NET_CFG_TXR_ADDR(queue_idx), txq->dma);\n-\tnn_cfg_writeb(hw, NFP_NET_CFG_TXR_SZ(queue_idx), rte_log2_u32(nb_desc));\n+\tnn_cfg_writeq(&hw->super, NFP_NET_CFG_TXR_ADDR(queue_idx), txq->dma);\n+\tnn_cfg_writeb(&hw->super, NFP_NET_CFG_TXR_SZ(queue_idx), rte_log2_u32(nb_desc));\n \n \treturn 0;\n }\n@@ -228,7 +228,7 @@ nfp_flower_repr_link_update(struct rte_eth_dev *dev,\n \t\t\t\t}\n \t\t\t}\n \t\t} else {\n-\t\t\tnn_link_status = nn_cfg_readw(pf_hw, NFP_NET_CFG_STS);\n+\t\t\tnn_link_status = nn_cfg_readw(&pf_hw->super, NFP_NET_CFG_STS);\n \t\t\tnn_link_status = (nn_link_status >> NFP_NET_CFG_STS_LINK_RATE_SHIFT) &\n \t\t\t\t\tNFP_NET_CFG_STS_LINK_RATE_MASK;\n \ndiff --git a/drivers/net/nfp/nfd3/nfp_nfd3_dp.c b/drivers/net/nfp/nfd3/nfp_nfd3_dp.c\nindex 9f03b56c0c..68a841b69e 100644\n--- a/drivers/net/nfp/nfd3/nfp_nfd3_dp.c\n+++ b/drivers/net/nfp/nfd3/nfp_nfd3_dp.c\n@@ -465,8 +465,8 @@ nfp_net_nfd3_tx_queue_setup(struct rte_eth_dev *dev,\n \t * Telling the HW about the physical address of the TX ring and number\n \t * of descriptors in log2 format.\n \t */\n-\tnn_cfg_writeq(hw, NFP_NET_CFG_TXR_ADDR(queue_idx), txq->dma);\n-\tnn_cfg_writeb(hw, NFP_NET_CFG_TXR_SZ(queue_idx), rte_log2_u32(txq->tx_count));\n+\tnn_cfg_writeq(&hw->super, NFP_NET_CFG_TXR_ADDR(queue_idx), txq->dma);\n+\tnn_cfg_writeb(&hw->super, NFP_NET_CFG_TXR_SZ(queue_idx), rte_log2_u32(txq->tx_count));\n \n \treturn 0;\n }\ndiff --git a/drivers/net/nfp/nfdk/nfp_nfdk_dp.c b/drivers/net/nfp/nfdk/nfp_nfdk_dp.c\nindex bc027210af..cef27b0d92 100644\n--- a/drivers/net/nfp/nfdk/nfp_nfdk_dp.c\n+++ b/drivers/net/nfp/nfdk/nfp_nfdk_dp.c\n@@ -542,8 +542,8 @@ nfp_net_nfdk_tx_queue_setup(struct rte_eth_dev *dev,\n \t * Telling the HW about the physical address of the TX ring and number\n \t * of descriptors in log2 format.\n \t */\n-\tnn_cfg_writeq(hw, NFP_NET_CFG_TXR_ADDR(queue_idx), txq->dma);\n-\tnn_cfg_writeb(hw, NFP_NET_CFG_TXR_SZ(queue_idx), rte_log2_u32(txq->tx_count));\n+\tnn_cfg_writeq(&hw->super, NFP_NET_CFG_TXR_ADDR(queue_idx), txq->dma);\n+\tnn_cfg_writeb(&hw->super, NFP_NET_CFG_TXR_SZ(queue_idx), rte_log2_u32(txq->tx_count));\n \n \treturn 0;\n }\ndiff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c\nindex ec9f6041fd..6a4455e50f 100644\n--- a/drivers/net/nfp/nfp_ethdev.c\n+++ b/drivers/net/nfp/nfp_ethdev.c\n@@ -284,7 +284,7 @@ nfp_net_close(struct rte_eth_dev *dev)\n \n \t/* Only free PF resources after all physical ports have been closed */\n \t/* Mark this port as unused and free device priv resources */\n-\tnn_cfg_writeb(hw, NFP_NET_CFG_LSC, 0xff);\n+\tnn_cfg_writeb(&hw->super, NFP_NET_CFG_LSC, 0xff);\n \tapp_fw_nic->ports[hw->idx] = NULL;\n \trte_eth_dev_release_port(dev);\n \n@@ -566,8 +566,8 @@ nfp_net_init(struct rte_eth_dev *eth_dev)\n \t}\n \n \t/* Work out where in the BAR the queues start. */\n-\ttx_base = nn_cfg_readl(hw, NFP_NET_CFG_START_TXQ);\n-\trx_base = nn_cfg_readl(hw, NFP_NET_CFG_START_RXQ);\n+\ttx_base = nn_cfg_readl(&hw->super, NFP_NET_CFG_START_TXQ);\n+\trx_base = nn_cfg_readl(&hw->super, NFP_NET_CFG_START_RXQ);\n \n \thw->tx_bar = pf_dev->qc_bar + tx_base * NFP_QCP_QUEUE_ADDR_SZ;\n \thw->rx_bar = pf_dev->qc_bar + rx_base * NFP_QCP_QUEUE_ADDR_SZ;\n@@ -624,7 +624,7 @@ nfp_net_init(struct rte_eth_dev *eth_dev)\n \trte_intr_callback_register(pci_dev->intr_handle,\n \t\t\tnfp_net_dev_interrupt_handler, (void *)eth_dev);\n \t/* Telling the firmware about the LSC interrupt entry */\n-\tnn_cfg_writeb(hw, NFP_NET_CFG_LSC, NFP_NET_IRQ_LSC_IDX);\n+\tnn_cfg_writeb(&hw->super, NFP_NET_CFG_LSC, NFP_NET_IRQ_LSC_IDX);\n \t/* Recording current stats counters values */\n \tnfp_net_stats_reset(eth_dev);\n \ndiff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c\nindex 684968903c..7fb2a3d378 100644\n--- a/drivers/net/nfp/nfp_ethdev_vf.c\n+++ b/drivers/net/nfp/nfp_ethdev_vf.c\n@@ -20,10 +20,10 @@ nfp_netvf_read_mac(struct nfp_net_hw *hw)\n {\n \tuint32_t tmp;\n \n-\ttmp = rte_be_to_cpu_32(nn_cfg_readl(hw, NFP_NET_CFG_MACADDR));\n+\ttmp = rte_be_to_cpu_32(nn_cfg_readl(&hw->super, NFP_NET_CFG_MACADDR));\n \tmemcpy(&hw->mac_addr.addr_bytes[0], &tmp, 4);\n \n-\ttmp = rte_be_to_cpu_32(nn_cfg_readl(hw, NFP_NET_CFG_MACADDR + 4));\n+\ttmp = rte_be_to_cpu_32(nn_cfg_readl(&hw->super, NFP_NET_CFG_MACADDR + 4));\n \tmemcpy(&hw->mac_addr.addr_bytes[4], &tmp, 2);\n }\n \n@@ -97,7 +97,7 @@ nfp_netvf_start(struct rte_eth_dev *dev)\n \tif ((hw->super.cap & NFP_NET_CFG_CTRL_RINGCFG) != 0)\n \t\tnew_ctrl |= NFP_NET_CFG_CTRL_RINGCFG;\n \n-\tnn_cfg_writel(hw, NFP_NET_CFG_CTRL, new_ctrl);\n+\tnn_cfg_writel(&hw->super, NFP_NET_CFG_CTRL, new_ctrl);\n \tif (nfp_net_reconfig(hw, new_ctrl, update) != 0)\n \t\treturn -EIO;\n \n@@ -299,9 +299,9 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev)\n \t}\n \n \t/* Work out where in the BAR the queues start. */\n-\tstart_q = nn_cfg_readl(hw, NFP_NET_CFG_START_TXQ);\n+\tstart_q = nn_cfg_readl(&hw->super, NFP_NET_CFG_START_TXQ);\n \ttx_bar_off = nfp_qcp_queue_offset(dev_info, start_q);\n-\tstart_q = nn_cfg_readl(hw, NFP_NET_CFG_START_RXQ);\n+\tstart_q = nn_cfg_readl(&hw->super, NFP_NET_CFG_START_RXQ);\n \trx_bar_off = nfp_qcp_queue_offset(dev_info, start_q);\n \n \thw->tx_bar = (uint8_t *)pci_dev->mem_resource[2].addr + tx_bar_off;\n@@ -357,7 +357,7 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev)\n \t\trte_intr_callback_register(pci_dev->intr_handle,\n \t\t\t\tnfp_net_dev_interrupt_handler, (void *)eth_dev);\n \t\t/* Telling the firmware about the LSC interrupt entry */\n-\t\tnn_cfg_writeb(hw, NFP_NET_CFG_LSC, NFP_NET_IRQ_LSC_IDX);\n+\t\tnn_cfg_writeb(&hw->super, NFP_NET_CFG_LSC, NFP_NET_IRQ_LSC_IDX);\n \t\t/* Recording current stats counters values */\n \t\tnfp_net_stats_reset(eth_dev);\n \t}\ndiff --git a/drivers/net/nfp/nfp_ipsec.c b/drivers/net/nfp/nfp_ipsec.c\nindex af85e8575c..db3b7492e1 100644\n--- a/drivers/net/nfp/nfp_ipsec.c\n+++ b/drivers/net/nfp/nfp_ipsec.c\n@@ -445,7 +445,7 @@ nfp_ipsec_cfg_cmd_issue(struct nfp_net_hw *hw,\n \tmsg->rsp = NFP_IPSEC_CFG_MSG_OK;\n \n \tfor (i = 0; i < msg_size; i++)\n-\t\tnn_cfg_writel(hw, NFP_NET_CFG_MBOX_VAL + 4 * i, msg->raw[i]);\n+\t\tnn_cfg_writel(&hw->super, NFP_NET_CFG_MBOX_VAL + 4 * i, msg->raw[i]);\n \n \tret = nfp_net_mbox_reconfig(hw, NFP_NET_CFG_MBOX_CMD_IPSEC);\n \tif (ret < 0) {\n@@ -459,7 +459,7 @@ nfp_ipsec_cfg_cmd_issue(struct nfp_net_hw *hw,\n \t * response. One example where the data is needed is for statistics.\n \t */\n \tfor (i = 0; i < msg_size; i++)\n-\t\tmsg->raw[i] = nn_cfg_readl(hw, NFP_NET_CFG_MBOX_VAL + 4 * i);\n+\t\tmsg->raw[i] = nn_cfg_readl(&hw->super, NFP_NET_CFG_MBOX_VAL + 4 * i);\n \n \tswitch (msg->rsp) {\n \tcase NFP_IPSEC_CFG_MSG_OK:\ndiff --git a/drivers/net/nfp/nfp_net_common.c b/drivers/net/nfp/nfp_net_common.c\nindex 25b8e3a613..4f830f2a2a 100644\n--- a/drivers/net/nfp/nfp_net_common.c\n+++ b/drivers/net/nfp/nfp_net_common.c\n@@ -182,7 +182,8 @@ nfp_net_notify_port_speed(struct nfp_net_hw *hw,\n \t * NFP_NET_CFG_STS_NSP_LINK_RATE.\n \t */\n \tif (link->link_status == RTE_ETH_LINK_DOWN) {\n-\t\tnn_cfg_writew(hw, NFP_NET_CFG_STS_NSP_LINK_RATE, NFP_NET_CFG_STS_LINK_RATE_UNKNOWN);\n+\t\tnn_cfg_writew(&hw->super, NFP_NET_CFG_STS_NSP_LINK_RATE,\n+\t\t\t\tNFP_NET_CFG_STS_LINK_RATE_UNKNOWN);\n \t\treturn;\n \t}\n \n@@ -190,7 +191,7 @@ nfp_net_notify_port_speed(struct nfp_net_hw *hw,\n \t * Link is up so write the link speed from the eth_table to\n \t * NFP_NET_CFG_STS_NSP_LINK_RATE.\n \t */\n-\tnn_cfg_writew(hw, NFP_NET_CFG_STS_NSP_LINK_RATE,\n+\tnn_cfg_writew(&hw->super, NFP_NET_CFG_STS_NSP_LINK_RATE,\n \t\t\tnfp_net_link_speed_rte2nfp(link->link_speed));\n }\n \n@@ -222,7 +223,7 @@ __nfp_net_reconfig(struct nfp_net_hw *hw,\n \n \t/* Poll update field, waiting for NFP to ack the config */\n \tfor (cnt = 0; ; cnt++) {\n-\t\tnew = nn_cfg_readl(hw, NFP_NET_CFG_UPDATE);\n+\t\tnew = nn_cfg_readl(&hw->super, NFP_NET_CFG_UPDATE);\n \t\tif (new == 0)\n \t\t\tbreak;\n \n@@ -270,8 +271,8 @@ nfp_net_reconfig(struct nfp_net_hw *hw,\n \n \trte_spinlock_lock(&hw->reconfig_lock);\n \n-\tnn_cfg_writel(hw, NFP_NET_CFG_CTRL, ctrl);\n-\tnn_cfg_writel(hw, NFP_NET_CFG_UPDATE, update);\n+\tnn_cfg_writel(&hw->super, NFP_NET_CFG_CTRL, ctrl);\n+\tnn_cfg_writel(&hw->super, NFP_NET_CFG_UPDATE, update);\n \n \trte_wmb();\n \n@@ -314,8 +315,8 @@ nfp_net_ext_reconfig(struct nfp_net_hw *hw,\n \n \trte_spinlock_lock(&hw->reconfig_lock);\n \n-\tnn_cfg_writel(hw, NFP_NET_CFG_CTRL_WORD1, ctrl_ext);\n-\tnn_cfg_writel(hw, NFP_NET_CFG_UPDATE, update);\n+\tnn_cfg_writel(&hw->super, NFP_NET_CFG_CTRL_WORD1, ctrl_ext);\n+\tnn_cfg_writel(&hw->super, NFP_NET_CFG_UPDATE, update);\n \n \trte_wmb();\n \n@@ -355,8 +356,8 @@ nfp_net_mbox_reconfig(struct nfp_net_hw *hw,\n \n \trte_spinlock_lock(&hw->reconfig_lock);\n \n-\tnn_cfg_writeq(hw, mbox + NFP_NET_CFG_MBOX_SIMPLE_CMD, mbox_cmd);\n-\tnn_cfg_writel(hw, NFP_NET_CFG_UPDATE, NFP_NET_CFG_UPDATE_MBOX);\n+\tnn_cfg_writeq(&hw->super, mbox + NFP_NET_CFG_MBOX_SIMPLE_CMD, mbox_cmd);\n+\tnn_cfg_writel(&hw->super, NFP_NET_CFG_UPDATE, NFP_NET_CFG_UPDATE_MBOX);\n \n \trte_wmb();\n \n@@ -370,7 +371,7 @@ nfp_net_mbox_reconfig(struct nfp_net_hw *hw,\n \t\treturn -EIO;\n \t}\n \n-\treturn nn_cfg_readl(hw, mbox + NFP_NET_CFG_MBOX_SIMPLE_RET);\n+\treturn nn_cfg_readl(&hw->super, mbox + NFP_NET_CFG_MBOX_SIMPLE_RET);\n }\n \n /*\n@@ -478,14 +479,14 @@ nfp_net_enable_queues(struct rte_eth_dev *dev)\n \tfor (i = 0; i < dev->data->nb_tx_queues; i++)\n \t\tenabled_queues |= (1 << i);\n \n-\tnn_cfg_writeq(hw, NFP_NET_CFG_TXRS_ENABLE, enabled_queues);\n+\tnn_cfg_writeq(&hw->super, NFP_NET_CFG_TXRS_ENABLE, enabled_queues);\n \n \t/* Enabling the required RX queues in the device */\n \tenabled_queues = 0;\n \tfor (i = 0; i < dev->data->nb_rx_queues; i++)\n \t\tenabled_queues |= (1 << i);\n \n-\tnn_cfg_writeq(hw, NFP_NET_CFG_RXRS_ENABLE, enabled_queues);\n+\tnn_cfg_writeq(&hw->super, NFP_NET_CFG_RXRS_ENABLE, enabled_queues);\n }\n \n void\n@@ -497,8 +498,8 @@ nfp_net_disable_queues(struct rte_eth_dev *dev)\n \n \thw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);\n \n-\tnn_cfg_writeq(hw, NFP_NET_CFG_TXRS_ENABLE, 0);\n-\tnn_cfg_writeq(hw, NFP_NET_CFG_RXRS_ENABLE, 0);\n+\tnn_cfg_writeq(&hw->super, NFP_NET_CFG_TXRS_ENABLE, 0);\n+\tnn_cfg_writeq(&hw->super, NFP_NET_CFG_RXRS_ENABLE, 0);\n \n \tnew_ctrl = hw->super.ctrl & ~NFP_NET_CFG_CTRL_ENABLE;\n \tupdate = NFP_NET_CFG_UPDATE_GEN |\n@@ -518,8 +519,8 @@ nfp_net_disable_queues(struct rte_eth_dev *dev)\n void\n nfp_net_params_setup(struct nfp_net_hw *hw)\n {\n-\tnn_cfg_writel(hw, NFP_NET_CFG_MTU, hw->mtu);\n-\tnn_cfg_writel(hw, NFP_NET_CFG_FLBUFSZ, hw->flbufsz);\n+\tnn_cfg_writel(&hw->super, NFP_NET_CFG_MTU, hw->mtu);\n+\tnn_cfg_writel(&hw->super, NFP_NET_CFG_FLBUFSZ, hw->flbufsz);\n }\n \n void\n@@ -596,7 +597,7 @@ nfp_configure_rx_interrupt(struct rte_eth_dev *dev,\n \tif (rte_intr_type_get(intr_handle) == RTE_INTR_HANDLE_UIO) {\n \t\tPMD_DRV_LOG(INFO, \"VF: enabling RX interrupt with UIO\");\n \t\t/* UIO just supports one queue and no LSC */\n-\t\tnn_cfg_writeb(hw, NFP_NET_CFG_RXR_VEC(0), 0);\n+\t\tnn_cfg_writeb(&hw->super, NFP_NET_CFG_RXR_VEC(0), 0);\n \t\tif (rte_intr_vec_list_index_set(intr_handle, 0, 0) != 0)\n \t\t\treturn -1;\n \t} else {\n@@ -606,7 +607,7 @@ nfp_configure_rx_interrupt(struct rte_eth_dev *dev,\n \t\t\t * The first msix vector is reserved for non\n \t\t\t * efd interrupts.\n \t\t\t */\n-\t\t\tnn_cfg_writeb(hw, NFP_NET_CFG_RXR_VEC(i), i + 1);\n+\t\t\tnn_cfg_writeb(&hw->super, NFP_NET_CFG_RXR_VEC(i), i + 1);\n \t\t\tif (rte_intr_vec_list_index_set(intr_handle, i, i + 1) != 0)\n \t\t\t\treturn -1;\n \t\t}\n@@ -771,7 +772,7 @@ nfp_net_link_update(struct rte_eth_dev *dev,\n \tmemset(&link, 0, sizeof(struct rte_eth_link));\n \n \t/* Read link status */\n-\tnn_link_status = nn_cfg_readw(hw, NFP_NET_CFG_STS);\n+\tnn_link_status = nn_cfg_readw(&hw->super, NFP_NET_CFG_STS);\n \tif ((nn_link_status & NFP_NET_CFG_STS_LINK) != 0)\n \t\tlink.link_status = RTE_ETH_LINK_UP;\n \n@@ -842,12 +843,12 @@ nfp_net_stats_get(struct rte_eth_dev *dev,\n \t\t\tbreak;\n \n \t\tnfp_dev_stats.q_ipackets[i] =\n-\t\t\t\tnn_cfg_readq(hw, NFP_NET_CFG_RXR_STATS(i));\n+\t\t\t\tnn_cfg_readq(&hw->super, NFP_NET_CFG_RXR_STATS(i));\n \t\tnfp_dev_stats.q_ipackets[i] -=\n \t\t\t\thw->eth_stats_base.q_ipackets[i];\n \n \t\tnfp_dev_stats.q_ibytes[i] =\n-\t\t\t\tnn_cfg_readq(hw, NFP_NET_CFG_RXR_STATS(i) + 0x8);\n+\t\t\t\tnn_cfg_readq(&hw->super, NFP_NET_CFG_RXR_STATS(i) + 0x8);\n \t\tnfp_dev_stats.q_ibytes[i] -=\n \t\t\t\thw->eth_stats_base.q_ibytes[i];\n \t}\n@@ -858,42 +859,42 @@ nfp_net_stats_get(struct rte_eth_dev *dev,\n \t\t\tbreak;\n \n \t\tnfp_dev_stats.q_opackets[i] =\n-\t\t\t\tnn_cfg_readq(hw, NFP_NET_CFG_TXR_STATS(i));\n+\t\t\t\tnn_cfg_readq(&hw->super, NFP_NET_CFG_TXR_STATS(i));\n \t\tnfp_dev_stats.q_opackets[i] -= hw->eth_stats_base.q_opackets[i];\n \n \t\tnfp_dev_stats.q_obytes[i] =\n-\t\t\t\tnn_cfg_readq(hw, NFP_NET_CFG_TXR_STATS(i) + 0x8);\n+\t\t\t\tnn_cfg_readq(&hw->super, NFP_NET_CFG_TXR_STATS(i) + 0x8);\n \t\tnfp_dev_stats.q_obytes[i] -= hw->eth_stats_base.q_obytes[i];\n \t}\n \n-\tnfp_dev_stats.ipackets = nn_cfg_readq(hw, NFP_NET_CFG_STATS_RX_FRAMES);\n+\tnfp_dev_stats.ipackets = nn_cfg_readq(&hw->super, NFP_NET_CFG_STATS_RX_FRAMES);\n \tnfp_dev_stats.ipackets -= hw->eth_stats_base.ipackets;\n \n-\tnfp_dev_stats.ibytes = nn_cfg_readq(hw, NFP_NET_CFG_STATS_RX_OCTETS);\n+\tnfp_dev_stats.ibytes = nn_cfg_readq(&hw->super, NFP_NET_CFG_STATS_RX_OCTETS);\n \tnfp_dev_stats.ibytes -= hw->eth_stats_base.ibytes;\n \n \tnfp_dev_stats.opackets =\n-\t\t\tnn_cfg_readq(hw, NFP_NET_CFG_STATS_TX_FRAMES);\n+\t\t\tnn_cfg_readq(&hw->super, NFP_NET_CFG_STATS_TX_FRAMES);\n \tnfp_dev_stats.opackets -= hw->eth_stats_base.opackets;\n \n \tnfp_dev_stats.obytes =\n-\t\t\tnn_cfg_readq(hw, NFP_NET_CFG_STATS_TX_OCTETS);\n+\t\t\tnn_cfg_readq(&hw->super, NFP_NET_CFG_STATS_TX_OCTETS);\n \tnfp_dev_stats.obytes -= hw->eth_stats_base.obytes;\n \n \t/* Reading general device stats */\n \tnfp_dev_stats.ierrors =\n-\t\t\tnn_cfg_readq(hw, NFP_NET_CFG_STATS_RX_ERRORS);\n+\t\t\tnn_cfg_readq(&hw->super, NFP_NET_CFG_STATS_RX_ERRORS);\n \tnfp_dev_stats.ierrors -= hw->eth_stats_base.ierrors;\n \n \tnfp_dev_stats.oerrors =\n-\t\t\tnn_cfg_readq(hw, NFP_NET_CFG_STATS_TX_ERRORS);\n+\t\t\tnn_cfg_readq(&hw->super, NFP_NET_CFG_STATS_TX_ERRORS);\n \tnfp_dev_stats.oerrors -= hw->eth_stats_base.oerrors;\n \n \t/* RX ring mbuf allocation failures */\n \tnfp_dev_stats.rx_nombuf = dev->data->rx_mbuf_alloc_failed;\n \n \tnfp_dev_stats.imissed =\n-\t\t\tnn_cfg_readq(hw, NFP_NET_CFG_STATS_RX_DISCARDS);\n+\t\t\tnn_cfg_readq(&hw->super, NFP_NET_CFG_STATS_RX_DISCARDS);\n \tnfp_dev_stats.imissed -= hw->eth_stats_base.imissed;\n \n \tmemcpy(stats, &nfp_dev_stats, sizeof(*stats));\n@@ -918,10 +919,10 @@ nfp_net_stats_reset(struct rte_eth_dev *dev)\n \t\t\tbreak;\n \n \t\thw->eth_stats_base.q_ipackets[i] =\n-\t\t\t\tnn_cfg_readq(hw, NFP_NET_CFG_RXR_STATS(i));\n+\t\t\t\tnn_cfg_readq(&hw->super, NFP_NET_CFG_RXR_STATS(i));\n \n \t\thw->eth_stats_base.q_ibytes[i] =\n-\t\t\t\tnn_cfg_readq(hw, NFP_NET_CFG_RXR_STATS(i) + 0x8);\n+\t\t\t\tnn_cfg_readq(&hw->super, NFP_NET_CFG_RXR_STATS(i) + 0x8);\n \t}\n \n \t/* Reading per TX ring stats */\n@@ -930,36 +931,36 @@ nfp_net_stats_reset(struct rte_eth_dev *dev)\n \t\t\tbreak;\n \n \t\thw->eth_stats_base.q_opackets[i] =\n-\t\t\t\tnn_cfg_readq(hw, NFP_NET_CFG_TXR_STATS(i));\n+\t\t\t\tnn_cfg_readq(&hw->super, NFP_NET_CFG_TXR_STATS(i));\n \n \t\thw->eth_stats_base.q_obytes[i] =\n-\t\t\t\tnn_cfg_readq(hw, NFP_NET_CFG_TXR_STATS(i) + 0x8);\n+\t\t\t\tnn_cfg_readq(&hw->super, NFP_NET_CFG_TXR_STATS(i) + 0x8);\n \t}\n \n \thw->eth_stats_base.ipackets =\n-\t\t\tnn_cfg_readq(hw, NFP_NET_CFG_STATS_RX_FRAMES);\n+\t\t\tnn_cfg_readq(&hw->super, NFP_NET_CFG_STATS_RX_FRAMES);\n \n \thw->eth_stats_base.ibytes =\n-\t\t\tnn_cfg_readq(hw, NFP_NET_CFG_STATS_RX_OCTETS);\n+\t\t\tnn_cfg_readq(&hw->super, NFP_NET_CFG_STATS_RX_OCTETS);\n \n \thw->eth_stats_base.opackets =\n-\t\t\tnn_cfg_readq(hw, NFP_NET_CFG_STATS_TX_FRAMES);\n+\t\t\tnn_cfg_readq(&hw->super, NFP_NET_CFG_STATS_TX_FRAMES);\n \n \thw->eth_stats_base.obytes =\n-\t\t\tnn_cfg_readq(hw, NFP_NET_CFG_STATS_TX_OCTETS);\n+\t\t\tnn_cfg_readq(&hw->super, NFP_NET_CFG_STATS_TX_OCTETS);\n \n \t/* Reading general device stats */\n \thw->eth_stats_base.ierrors =\n-\t\t\tnn_cfg_readq(hw, NFP_NET_CFG_STATS_RX_ERRORS);\n+\t\t\tnn_cfg_readq(&hw->super, NFP_NET_CFG_STATS_RX_ERRORS);\n \n \thw->eth_stats_base.oerrors =\n-\t\t\tnn_cfg_readq(hw, NFP_NET_CFG_STATS_TX_ERRORS);\n+\t\t\tnn_cfg_readq(&hw->super, NFP_NET_CFG_STATS_TX_ERRORS);\n \n \t/* RX ring mbuf allocation failures */\n \tdev->data->rx_mbuf_alloc_failed = 0;\n \n \thw->eth_stats_base.imissed =\n-\t\t\tnn_cfg_readq(hw, NFP_NET_CFG_STATS_RX_DISCARDS);\n+\t\t\tnn_cfg_readq(&hw->super, NFP_NET_CFG_STATS_RX_DISCARDS);\n \n \treturn 0;\n }\n@@ -1012,7 +1013,7 @@ nfp_net_xstats_value(const struct rte_eth_dev *dev,\n \tif (xstat.group == NFP_XSTAT_GROUP_MAC)\n \t\tvalue = nn_readq(hw->mac_stats + xstat.offset);\n \telse\n-\t\tvalue = nn_cfg_readq(hw, xstat.offset);\n+\t\tvalue = nn_cfg_readq(&hw->super, xstat.offset);\n \n \tif (raw)\n \t\treturn value;\n@@ -1320,8 +1321,8 @@ nfp_net_common_init(struct rte_pci_device *pci_dev,\n \thw->subsystem_device_id = pci_dev->id.subsystem_device_id;\n \thw->subsystem_vendor_id = pci_dev->id.subsystem_vendor_id;\n \n-\thw->max_rx_queues = nn_cfg_readl(hw, NFP_NET_CFG_MAX_RXRINGS);\n-\thw->max_tx_queues = nn_cfg_readl(hw, NFP_NET_CFG_MAX_TXRINGS);\n+\thw->max_rx_queues = nn_cfg_readl(&hw->super, NFP_NET_CFG_MAX_RXRINGS);\n+\thw->max_tx_queues = nn_cfg_readl(&hw->super, NFP_NET_CFG_MAX_TXRINGS);\n \tif (hw->max_rx_queues == 0 || hw->max_tx_queues == 0) {\n \t\tPMD_INIT_LOG(ERR, \"Device %s can not be used, there are no valid queue \"\n \t\t\t\t\"pairs for use\", pci_dev->name);\n@@ -1336,9 +1337,9 @@ nfp_net_common_init(struct rte_pci_device *pci_dev,\n \t\treturn -ENODEV;\n \n \t/* Get some of the read-only fields from the config BAR */\n-\thw->super.cap = nn_cfg_readl(hw, NFP_NET_CFG_CAP);\n-\thw->cap_ext = nn_cfg_readl(hw, NFP_NET_CFG_CAP_WORD1);\n-\thw->max_mtu = nn_cfg_readl(hw, NFP_NET_CFG_MAX_MTU);\n+\thw->super.cap = nn_cfg_readl(&hw->super, NFP_NET_CFG_CAP);\n+\thw->cap_ext = nn_cfg_readl(&hw->super, NFP_NET_CFG_CAP_WORD1);\n+\thw->max_mtu = nn_cfg_readl(&hw->super, NFP_NET_CFG_MAX_MTU);\n \thw->flbufsz = DEFAULT_FLBUF_SIZE;\n \n \tnfp_net_init_metadata_format(hw);\n@@ -1347,7 +1348,7 @@ nfp_net_common_init(struct rte_pci_device *pci_dev,\n \tif (hw->ver.major < 2)\n \t\thw->rx_offset = NFP_NET_RX_OFFSET;\n \telse\n-\t\thw->rx_offset = nn_cfg_readl(hw, NFP_NET_CFG_RX_OFFSET_ADDR);\n+\t\thw->rx_offset = nn_cfg_readl(&hw->super, NFP_NET_CFG_RX_OFFSET_ADDR);\n \n \thw->super.ctrl = 0;\n \thw->stride_rx = stride;\n@@ -1389,7 +1390,7 @@ nfp_rx_queue_intr_enable(struct rte_eth_dev *dev,\n \trte_wmb();\n \n \thw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);\n-\tnn_cfg_writeb(hw, NFP_NET_CFG_ICR(base + queue_id),\n+\tnn_cfg_writeb(&hw->super, NFP_NET_CFG_ICR(base + queue_id),\n \t\t\tNFP_NET_CFG_ICR_UNMASKED);\n \treturn 0;\n }\n@@ -1410,7 +1411,7 @@ nfp_rx_queue_intr_disable(struct rte_eth_dev *dev,\n \trte_wmb();\n \n \thw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);\n-\tnn_cfg_writeb(hw, NFP_NET_CFG_ICR(base + queue_id), NFP_NET_CFG_ICR_RXTX);\n+\tnn_cfg_writeb(&hw->super, NFP_NET_CFG_ICR(base + queue_id), NFP_NET_CFG_ICR_RXTX);\n \n \treturn 0;\n }\n@@ -1457,7 +1458,7 @@ nfp_net_irq_unmask(struct rte_eth_dev *dev)\n \t\t/* If MSI-X auto-masking is used, clear the entry */\n \t\trte_intr_ack(pci_dev->intr_handle);\n \t} else {\n-\t\tnn_cfg_writeb(hw, NFP_NET_CFG_ICR(NFP_NET_IRQ_LSC_IDX),\n+\t\tnn_cfg_writeb(&hw->super, NFP_NET_CFG_ICR(NFP_NET_IRQ_LSC_IDX),\n \t\t\t\tNFP_NET_CFG_ICR_UNMASKED);\n \t}\n }\n@@ -1539,7 +1540,7 @@ nfp_net_dev_mtu_set(struct rte_eth_dev *dev,\n \t}\n \n \t/* Writing to configuration space */\n-\tnn_cfg_writel(hw, NFP_NET_CFG_MTU, mtu);\n+\tnn_cfg_writel(&hw->super, NFP_NET_CFG_MTU, mtu);\n \n \thw->mtu = mtu;\n \n@@ -1630,7 +1631,7 @@ nfp_net_rss_reta_write(struct rte_eth_dev *dev,\n \n \t\t/* If all 4 entries were set, don't need read RETA register */\n \t\tif (mask != 0xF)\n-\t\t\treta = nn_cfg_readl(hw, NFP_NET_CFG_RSS_ITBL + i);\n+\t\t\treta = nn_cfg_readl(&hw->super, NFP_NET_CFG_RSS_ITBL + i);\n \n \t\tfor (j = 0; j < 4; j++) {\n \t\t\tif ((mask & (0x1 << j)) == 0)\n@@ -1643,7 +1644,7 @@ nfp_net_rss_reta_write(struct rte_eth_dev *dev,\n \t\t\treta |= reta_conf[idx].reta[shift + j] << (8 * j);\n \t\t}\n \n-\t\tnn_cfg_writel(hw, NFP_NET_CFG_RSS_ITBL + (idx * 64) + shift, reta);\n+\t\tnn_cfg_writel(&hw->super, NFP_NET_CFG_RSS_ITBL + (idx * 64) + shift, reta);\n \t}\n \n \treturn 0;\n@@ -1713,7 +1714,7 @@ nfp_net_reta_query(struct rte_eth_dev *dev,\n \t\tif (mask == 0)\n \t\t\tcontinue;\n \n-\t\treta = nn_cfg_readl(hw, NFP_NET_CFG_RSS_ITBL + (idx * 64) + shift);\n+\t\treta = nn_cfg_readl(&hw->super, NFP_NET_CFG_RSS_ITBL + (idx * 64) + shift);\n \t\tfor (j = 0; j < 4; j++) {\n \t\t\tif ((mask & (0x1 << j)) == 0)\n \t\t\t\tcontinue;\n@@ -1741,7 +1742,7 @@ nfp_net_rss_hash_write(struct rte_eth_dev *dev,\n \t/* Writing the key byte by byte */\n \tfor (i = 0; i < rss_conf->rss_key_len; i++) {\n \t\tmemcpy(&key, &rss_conf->rss_key[i], 1);\n-\t\tnn_cfg_writeb(hw, NFP_NET_CFG_RSS_KEY + i, key);\n+\t\tnn_cfg_writeb(&hw->super, NFP_NET_CFG_RSS_KEY + i, key);\n \t}\n \n \trss_hf = rss_conf->rss_hf;\n@@ -1774,10 +1775,10 @@ nfp_net_rss_hash_write(struct rte_eth_dev *dev,\n \tcfg_rss_ctrl |= NFP_NET_CFG_RSS_TOEPLITZ;\n \n \t/* Configuring where to apply the RSS hash */\n-\tnn_cfg_writel(hw, NFP_NET_CFG_RSS_CTRL, cfg_rss_ctrl);\n+\tnn_cfg_writel(&hw->super, NFP_NET_CFG_RSS_CTRL, cfg_rss_ctrl);\n \n \t/* Writing the key size */\n-\tnn_cfg_writeb(hw, NFP_NET_CFG_RSS_KEY_SZ, rss_conf->rss_key_len);\n+\tnn_cfg_writeb(&hw->super, NFP_NET_CFG_RSS_KEY_SZ, rss_conf->rss_key_len);\n \n \treturn 0;\n }\n@@ -1835,7 +1836,7 @@ nfp_net_rss_hash_conf_get(struct rte_eth_dev *dev,\n \t\treturn -EINVAL;\n \n \trss_hf = rss_conf->rss_hf;\n-\tcfg_rss_ctrl = nn_cfg_readl(hw, NFP_NET_CFG_RSS_CTRL);\n+\tcfg_rss_ctrl = nn_cfg_readl(&hw->super, NFP_NET_CFG_RSS_CTRL);\n \n \tif ((cfg_rss_ctrl & NFP_NET_CFG_RSS_IPV4) != 0)\n \t\trss_hf |= RTE_ETH_RSS_IPV4;\n@@ -1865,11 +1866,11 @@ nfp_net_rss_hash_conf_get(struct rte_eth_dev *dev,\n \trss_conf->rss_hf = rss_hf;\n \n \t/* Reading the key size */\n-\trss_conf->rss_key_len = nn_cfg_readl(hw, NFP_NET_CFG_RSS_KEY_SZ);\n+\trss_conf->rss_key_len = nn_cfg_readl(&hw->super, NFP_NET_CFG_RSS_KEY_SZ);\n \n \t/* Reading the key byte a byte */\n \tfor (i = 0; i < rss_conf->rss_key_len; i++) {\n-\t\tkey = nn_cfg_readb(hw, NFP_NET_CFG_RSS_KEY + i);\n+\t\tkey = nn_cfg_readb(&hw->super, NFP_NET_CFG_RSS_KEY + i);\n \t\tmemcpy(&rss_conf->rss_key[i], &key, 1);\n \t}\n \n@@ -1983,13 +1984,13 @@ nfp_net_set_vxlan_port(struct nfp_net_hw *hw,\n \thw->vxlan_ports[idx] = port;\n \n \tfor (i = 0; i < NFP_NET_N_VXLAN_PORTS; i += 2) {\n-\t\tnn_cfg_writel(hw, NFP_NET_CFG_VXLAN_PORT + i * sizeof(port),\n+\t\tnn_cfg_writel(&hw->super, NFP_NET_CFG_VXLAN_PORT + i * sizeof(port),\n \t\t\t\t(hw->vxlan_ports[i + 1] << 16) | hw->vxlan_ports[i]);\n \t}\n \n \trte_spinlock_lock(&hw->reconfig_lock);\n \n-\tnn_cfg_writel(hw, NFP_NET_CFG_UPDATE, NFP_NET_CFG_UPDATE_VXLAN);\n+\tnn_cfg_writel(&hw->super, NFP_NET_CFG_UPDATE, NFP_NET_CFG_UPDATE_VXLAN);\n \trte_wmb();\n \n \tret = __nfp_net_reconfig(hw, NFP_NET_CFG_UPDATE_VXLAN);\n@@ -2048,7 +2049,7 @@ nfp_net_cfg_read_version(struct nfp_net_hw *hw)\n \t\tstruct nfp_net_fw_ver split;\n \t} version;\n \n-\tversion.whole = nn_cfg_readl(hw, NFP_NET_CFG_VERSION);\n+\tversion.whole = nn_cfg_readl(&hw->super, NFP_NET_CFG_VERSION);\n \thw->ver = version.split;\n }\n \ndiff --git a/drivers/net/nfp/nfp_net_common.h b/drivers/net/nfp/nfp_net_common.h\nindex 375e26bfc2..6576769214 100644\n--- a/drivers/net/nfp/nfp_net_common.h\n+++ b/drivers/net/nfp/nfp_net_common.h\n@@ -246,63 +246,63 @@ nn_writeq(uint64_t val,\n }\n \n static inline uint8_t\n-nn_cfg_readb(struct nfp_net_hw *hw,\n+nn_cfg_readb(struct nfp_hw *hw,\n \t\tuint32_t off)\n {\n-\treturn nn_readb(hw->super.ctrl_bar + off);\n+\treturn nn_readb(hw->ctrl_bar + off);\n }\n \n static inline void\n-nn_cfg_writeb(struct nfp_net_hw *hw,\n+nn_cfg_writeb(struct nfp_hw *hw,\n \t\tuint32_t off,\n \t\tuint8_t val)\n {\n-\tnn_writeb(val, hw->super.ctrl_bar + off);\n+\tnn_writeb(val, hw->ctrl_bar + off);\n }\n \n static inline uint16_t\n-nn_cfg_readw(struct nfp_net_hw *hw,\n+nn_cfg_readw(struct nfp_hw *hw,\n \t\tuint32_t off)\n {\n-\treturn rte_le_to_cpu_16(nn_readw(hw->super.ctrl_bar + off));\n+\treturn rte_le_to_cpu_16(nn_readw(hw->ctrl_bar + off));\n }\n \n static inline void\n-nn_cfg_writew(struct nfp_net_hw *hw,\n+nn_cfg_writew(struct nfp_hw *hw,\n \t\tuint32_t off,\n \t\tuint16_t val)\n {\n-\tnn_writew(rte_cpu_to_le_16(val), hw->super.ctrl_bar + off);\n+\tnn_writew(rte_cpu_to_le_16(val), hw->ctrl_bar + off);\n }\n \n static inline uint32_t\n-nn_cfg_readl(struct nfp_net_hw *hw,\n+nn_cfg_readl(struct nfp_hw *hw,\n \t\tuint32_t off)\n {\n-\treturn rte_le_to_cpu_32(nn_readl(hw->super.ctrl_bar + off));\n+\treturn rte_le_to_cpu_32(nn_readl(hw->ctrl_bar + off));\n }\n \n static inline void\n-nn_cfg_writel(struct nfp_net_hw *hw,\n+nn_cfg_writel(struct nfp_hw *hw,\n \t\tuint32_t off,\n \t\tuint32_t val)\n {\n-\tnn_writel(rte_cpu_to_le_32(val), hw->super.ctrl_bar + off);\n+\tnn_writel(rte_cpu_to_le_32(val), hw->ctrl_bar + off);\n }\n \n static inline uint64_t\n-nn_cfg_readq(struct nfp_net_hw *hw,\n+nn_cfg_readq(struct nfp_hw *hw,\n \t\tuint32_t off)\n {\n-\treturn rte_le_to_cpu_64(nn_readq(hw->super.ctrl_bar + off));\n+\treturn rte_le_to_cpu_64(nn_readq(hw->ctrl_bar + off));\n }\n \n static inline void\n-nn_cfg_writeq(struct nfp_net_hw *hw,\n+nn_cfg_writeq(struct nfp_hw *hw,\n \t\tuint32_t off,\n \t\tuint64_t val)\n {\n-\tnn_writeq(rte_cpu_to_le_64(val), hw->super.ctrl_bar + off);\n+\tnn_writeq(rte_cpu_to_le_64(val), hw->ctrl_bar + off);\n }\n \n /**\ndiff --git a/drivers/net/nfp/nfp_rxtx.c b/drivers/net/nfp/nfp_rxtx.c\nindex a9dd464a6a..f17cc13cc1 100644\n--- a/drivers/net/nfp/nfp_rxtx.c\n+++ b/drivers/net/nfp/nfp_rxtx.c\n@@ -925,8 +925,8 @@ nfp_net_rx_queue_setup(struct rte_eth_dev *dev,\n \t * Telling the HW about the physical address of the RX ring and number\n \t * of descriptors in log2 format.\n \t */\n-\tnn_cfg_writeq(hw, NFP_NET_CFG_RXR_ADDR(queue_idx), rxq->dma);\n-\tnn_cfg_writeb(hw, NFP_NET_CFG_RXR_SZ(queue_idx), rte_log2_u32(nb_desc));\n+\tnn_cfg_writeq(&hw->super, NFP_NET_CFG_RXR_ADDR(queue_idx), rxq->dma);\n+\tnn_cfg_writeb(&hw->super, NFP_NET_CFG_RXR_SZ(queue_idx), rte_log2_u32(nb_desc));\n \n \treturn 0;\n }\n",
    "prefixes": [
        "09/25"
    ]
}