get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 125882,
    "url": "http://patches.dpdk.org/api/patches/125882/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20230410110015.2973660-7-chaoyong.he@corigine.com/",
    "project": {
        "id": 1,
        "url": "http://patches.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": "<20230410110015.2973660-7-chaoyong.he@corigine.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20230410110015.2973660-7-chaoyong.he@corigine.com",
    "date": "2023-04-10T11:00:08",
    "name": "[06/13] net/nfp: remove dead code related to CPP",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "92aae6a259f3d473e89e539e89af96473440ba43",
    "submitter": {
        "id": 2554,
        "url": "http://patches.dpdk.org/api/people/2554/?format=api",
        "name": "Chaoyong He",
        "email": "chaoyong.he@corigine.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20230410110015.2973660-7-chaoyong.he@corigine.com/mbox/",
    "series": [
        {
            "id": 27651,
            "url": "http://patches.dpdk.org/api/series/27651/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=27651",
            "date": "2023-04-10T11:00:02",
            "name": "Sync the kernel driver logic",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/27651/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/125882/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/125882/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 EE1CC42910;\n\tMon, 10 Apr 2023 13:01:46 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id E54D142D0B;\n\tMon, 10 Apr 2023 13:01:04 +0200 (CEST)",
            "from NAM12-DM6-obe.outbound.protection.outlook.com\n (mail-dm6nam12on2106.outbound.protection.outlook.com [40.107.243.106])\n by mails.dpdk.org (Postfix) with ESMTP id F10ED42D33\n for <dev@dpdk.org>; Mon, 10 Apr 2023 13:01:02 +0200 (CEST)",
            "from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5)\n by DM6PR13MB3882.namprd13.prod.outlook.com (2603:10b6:5:22a::22) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6277.31; Mon, 10 Apr\n 2023 11:01:00 +0000",
            "from SJ0PR13MB5545.namprd13.prod.outlook.com\n ([fe80::baa6:b49:d2f4:c60e]) by SJ0PR13MB5545.namprd13.prod.outlook.com\n ([fe80::baa6:b49:d2f4:c60e%4]) with mapi id 15.20.6277.036; Mon, 10 Apr 2023\n 11:01:00 +0000"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=gHeTeqLrJABfApdJ4vg0t+7Q9atn1Fp0fb7T7JTUDgtFSPkot55+7a8aV2rzlwjjctP6mtDg/TwnRNARdRKHEbtKM7wczLe5UW9SgbBPvlspXa4XP4Rq0Vd0VXdaUniqu1K1ulJz8uqpw4ffN7rg0alqU9Z4ttc7x4UMCEOhnibcd2OYDocY/Ue1EUzu4k7BXn7ZmlL2hawGCiXAKR6cLa2FUxVS/LsNt5oiqQ3crjw1GFQCT8Kqd+F+XcT442M5H67X01QKGFeRLaSFSffuDQjLWqz5vFxnhyt7xkY3x9Dba33gQhhRFL1vpp49AWxJWoeeXVmYvhN5lotBX5zWqw==",
        "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=ba89yhBfXiXUq3bT8PMskM3geeHu0i5bTTPCnOhCAHM=;\n b=K0tqqQZ+HDA55qS/2EMrhf6MwHv9pxmCVvkzH/VlUBbFKhWQFuoymicFX7PxRqP+C8X9ICsv6uwn2BhZ2oEW1v8QikLKxGS7W6SVwYIamCkrlRZkEqBiKoPL/C2/4sWWTzlWkDLYiIAcI/uxBHgBfpGAMj3Q8+ca2WWrrDY00zADGEfPRYn0bRy3aVjn7vhta5o9k6/FvHgHQ56MQbetxhCVdLrz2Itr8PndDxo/9PQUjsyAOT9XKuMYkfpVkVXlLp750paHQhaSbGgbkHHdK/F+E0Vy7+E6i3t8TkGZVatNtyDQVO3YWrr7w5f/6mZxzciWNvR7xJvXs1mGFFcJ3Q==",
        "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=ba89yhBfXiXUq3bT8PMskM3geeHu0i5bTTPCnOhCAHM=;\n b=G1SJ013FQqzrSCTWpV0VzgcAFRmaR2iU8T4jySVAoU3ljnFldJj4UDFOFrdHBBkyct04ETaJZPnL+SC88x4fM16p4ZaUEBqmULkD7wYG87PbWjBwHXaKmmrkHE0fsBDQA20cyBaoMWnmpA2Sds/vedl+zCh3y4b6PYcXGMdLxp0=",
        "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, niklas.soderlund@corigine.com,\n Chaoyong He <chaoyong.he@corigine.com>",
        "Subject": "[PATCH 06/13] net/nfp: remove dead code related to CPP",
        "Date": "Mon, 10 Apr 2023 19:00:08 +0800",
        "Message-Id": "<20230410110015.2973660-7-chaoyong.he@corigine.com>",
        "X-Mailer": "git-send-email 2.39.1",
        "In-Reply-To": "<20230410110015.2973660-1-chaoyong.he@corigine.com>",
        "References": "<20230410110015.2973660-1-chaoyong.he@corigine.com>",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "X-ClientProxiedBy": "SI2PR01CA0040.apcprd01.prod.exchangelabs.com\n (2603:1096:4:193::14) To SJ0PR13MB5545.namprd13.prod.outlook.com\n (2603:10b6:a03:424::5)",
        "MIME-Version": "1.0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "SJ0PR13MB5545:EE_|DM6PR13MB3882:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "0b93a572-9b03-4527-39dd-08db39b2de93",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n 8UI3VGNpMuB5AhW+FGZVWdR5zsK0tazzXH9vW6OG4KHWrSWpflDOvxJaEMsgo4kQoPLbKcA+dg49BiZK+dC1Hn7PrXHYhBetOJVEm4QCh/WCQ+OrFMvQFpS5KM5N0IfIGJi2tl7gP2V0KhVPkhBapUizehC8Pa935GyNwuPRZ4GCa/DW7qIdpxFNSXAem4q4STtVZs/ATXVdmN6Pe4pgP/Ny1LBWqi5xwJ+4Mm/BtQAOWgShB/7wYLGcfyUKjnvITyqxZ6C29EYvnk2KeqrPMixY6pGfkzkzhwa0OsM9RpGrGVPF9fFiK1RmKC4CrqdEXMiYf5zRCLEL/0gMjxqcP0UVUahSoPvrJ9kkc3wq/tHyXnUq382T1PMgYnGsSPFwrBABkJAQIBkOY/lPoEfkQTb6r+Y1iWQx3HxicckKQiWR9mnJPtVS9fNbQVli/6vZ3j1cRM97Pb6gAgU860PuubNJfM1EgArouZdCEYo4NGMUAPGNI8WLjfQhA6tUqrAMNWATwBy2nSgT5MAu+aKRMY575PXDVXpqo6Lm0xDtDGJh20smE/hnbZ14Ll6GJu9v6OH30S9fbbmtoBsg5zR5I9mE4BGkwREAS6Wa1aU3o1Jkh/CLWMiT8l2rOcp3+n+k",
        "X-Forefront-Antispam-Report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE;\n SFS:(13230028)(4636009)(396003)(39840400004)(366004)(376002)(136003)(346002)(451199021)(316002)(86362001)(66556008)(66574015)(66476007)(478600001)(83380400001)(66946007)(38100700002)(38350700002)(36756003)(186003)(6512007)(4326008)(8676002)(2616005)(6916009)(41300700001)(2906002)(1076003)(6506007)(26005)(107886003)(8936002)(52116002)(30864003)(5660300002)(6486002)(44832011);\n DIR:OUT; SFP:1102;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "=?utf-8?q?Nfi70NAwngteEkQmIsX0V4Nxtiul?=\n\t=?utf-8?q?Uugx73/VsP6UqrqxFV0C57O8QIFei43kgiVfbn1mYnH4sj+BrjJCGxFnk4WzxKIGB?=\n\t=?utf-8?q?6yYBiiiDVs08Xks7mY53gMNK7A0Pj87vq4EOlG/bnJC0MW/Ov8l87Tpx6HIaxo955?=\n\t=?utf-8?q?YjESV1U+7IDkFRkgtmHNdGalnnmxgnsDpkTvZrh+JQKINrUgu3CMzPJMjtnfnMPAo?=\n\t=?utf-8?q?2QnPFtgBVCayE+sNS2KHagZYoOLF5GnjT5vX+1JU7IFs0qneEzw5ArGSW2JY39Q4O?=\n\t=?utf-8?q?x5eM9aBee8Q6HzaxU8RTjGPpi2dNIAd2f09lcjHqqa40CM2GKUmYIJHvZ/oVXP6hk?=\n\t=?utf-8?q?s3M/a8bQhQOwYSwBGKX1ha5oM12MZEsHktASoQy3qasp5UvYTbMyLnF/5sXUx5f67?=\n\t=?utf-8?q?nxSnkV0w/WEoCH5+sNqtwGEdYJYdz7a9HZ3inBIKJzpOkkMG5qrVQNNij/vUvR+uc?=\n\t=?utf-8?q?7RfY1gp1Ac0Y/rP90txMxDqwhOGbtQSQVYpjGqzkw3wlx38ibnVqQeQIxwAJxTprL?=\n\t=?utf-8?q?RQ9j/qAzdGXSLcm+2sQqEfLT45vw5jVfep5UNTbR2R0FIX5joh4qCOMSf88xEQrDz?=\n\t=?utf-8?q?zUink/rXbsLFFkrQyR8hR5lOP6NCgk+m4jYrSNmrL81YIosZeU2GqrQ0Y+jhIzKHB?=\n\t=?utf-8?q?QyIoaRmTOLnaDwYpIYF0m2QVKO0r0GVPisETgjHsHpYat9HGUH3jZBP8mD7D4EFrI?=\n\t=?utf-8?q?yZ5WbJUCvlHnrcBW+rEYhi0NkI6NZRRWfYBb8cJiv9ZkLEFOG9ysSGIu0cZLsxJtR?=\n\t=?utf-8?q?9K1dshQhCfZ7DrRv/JG6MAiyAAr48ZDiGjq7VM71ZjbFUJQGVAZIXYnyWOIfi5wri?=\n\t=?utf-8?q?K5pVsg6She4SHAFPSbu6kgMMJUmqmAo4Hlhu/KJ5vg8cgl4huM79qaShObyqmZ6On?=\n\t=?utf-8?q?mgN3A9XJ9QPaMFy7BgeqQMOReM05yuMOg01k/Y7S+jXA/TyAEa4Rdwqof53ruosic?=\n\t=?utf-8?q?NZgvKXSoA6P4WZTlJSr1bzsdo8JjBmlPMTKOwLBGAlVp1o+u1813CZObohbwwHNLh?=\n\t=?utf-8?q?54y9W+lG9myCwcbqErn3aOZ3nhuxTrgeG4TqF+VVS5jVciFXDQNxwcvx+InjH+vnf?=\n\t=?utf-8?q?LhvPwH4CwscIH3BosjNvoiPUlocae48Zq3Ja0TfGRJlH5TuaoK96ULVSt7G3ph13O?=\n\t=?utf-8?q?O1IbdpPiVD+nHJzobOBoP5D1vzi7ufn2DSqbaFqWWwfCMBlS5qzwj5dRpBKLSfBQS?=\n\t=?utf-8?q?pN9xWReTJFma4guwQXegJWc7EBA38wo5TD+fIXfj2WCuIWydoSfyMorG6QwjEB1Co?=\n\t=?utf-8?q?HUo85q+8WFxviWBRz0eW0vaQX2w58tTsilpU9o/qVKTeZUrkp7on4iT/RUsgeNOAa?=\n\t=?utf-8?q?UmPWtGt/6XkbWXhQIos+MqYI1QKM1yxxVyKxd4CZ0D4VN7x/p3l7XYj5wMcnhOu90?=\n\t=?utf-8?q?Ian9EQ/veSSpzVkRX/3ihqXFN0sQ3yEr9ASz3J5NT/HG/lMMCCvbjxqwPyAkGIRtx?=\n\t=?utf-8?q?oZek/Zy5OsmdvMnPnsPZFl/MeANJur5IzJ1yZV/spi/eoc/tELvzpw1MTsuULFDdx?=\n\t=?utf-8?q?Jb7Y56ylMV+xqlBcV2zJUdRo4ZSPdst0dw=3D=3D?=",
        "X-OriginatorOrg": "corigine.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 0b93a572-9b03-4527-39dd-08db39b2de93",
        "X-MS-Exchange-CrossTenant-AuthSource": "SJ0PR13MB5545.namprd13.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "10 Apr 2023 11:01:00.6588 (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 7Xki80iYHELpn1kmZIHpgQJcEmyk+NsGLy9HB8FaqawNgf7KGTK3Ww8xTsc++yUGS7M9kv3jT28Wp7QJp9xllwNWCjpImvVLA1tQ4fmHthI=",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DM6PR13MB3882",
        "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": "The header file bpf_resid.h contains function prototypes that are not\nimplemented anywhere, as well as a few defines and macros that are not\nused anywhere. Move the few inline functions, defines and macros that\nare used into nfp_cpp.h and remove bpf_resid.h.\n\nSigned-off-by: Chaoyong He <chaoyong.he@corigine.com>\nReviewed-by: Niklas Söderlund <niklas.soderlund@corigine.com>\n---\n .../net/nfp/nfpcore/nfp-common/nfp_resid.h    | 577 ------------------\n drivers/net/nfp/nfpcore/nfp_cpp.h             |  97 ++-\n drivers/net/nfp/nfpcore/nfp_target.h          |   1 -\n 3 files changed, 95 insertions(+), 580 deletions(-)\n delete mode 100644 drivers/net/nfp/nfpcore/nfp-common/nfp_resid.h",
    "diff": "diff --git a/drivers/net/nfp/nfpcore/nfp-common/nfp_resid.h b/drivers/net/nfp/nfpcore/nfp-common/nfp_resid.h\ndeleted file mode 100644\nindex 5445d4dac8..0000000000\n--- a/drivers/net/nfp/nfpcore/nfp-common/nfp_resid.h\n+++ /dev/null\n@@ -1,577 +0,0 @@\n-/* SPDX-License-Identifier: BSD-3-Clause\n- * Copyright(c) 2018 Netronome Systems, Inc.\n- * All rights reserved.\n- */\n-\n-#ifndef __NFP_RESID_H__\n-#define __NFP_RESID_H__\n-\n-#if (!defined(_NFP_RESID_NO_C_FUNC) && \\\n-\t(defined(__NFP_TOOL_NFCC) || defined(__NFP_TOOL_NFAS)))\n-#define _NFP_RESID_NO_C_FUNC\n-#endif\n-\n-/*\n- * NFP Chip Architectures\n- *\n- * These are semi-arbitrary values to indicate an NFP architecture.\n- * They serve as a software view of a group of chip families, not necessarily a\n- * direct mapping to actual hardware design.\n- */\n-#define NFP_CHIP_ARCH_YD\t1\n-#define NFP_CHIP_ARCH_TH\t2\n-\n-/*\n- * NFP Chip Families.\n- *\n- * These are not enums, because they need to be microcode compatible.\n- * They are also not maskable.\n- *\n- * Note: The NFP-4xxx family is handled as NFP-6xxx in most software\n- * components.\n- *\n- */\n-#define NFP_CHIP_FAMILY_NFP6000 0x6000\t/* ARCH_TH */\n-\n-/* NFP Microengine/Flow Processing Core Versions */\n-#define NFP_CHIP_ME_VERSION_2_7 0x0207\n-#define NFP_CHIP_ME_VERSION_2_8 0x0208\n-#define NFP_CHIP_ME_VERSION_2_9 0x0209\n-\n-/* NFP Chip Base Revisions. Minor stepping can just be added to these */\n-#define NFP_CHIP_REVISION_A0 0x00\n-#define NFP_CHIP_REVISION_B0 0x10\n-#define NFP_CHIP_REVISION_C0 0x20\n-#define NFP_CHIP_REVISION_PF 0xff /* Maximum possible revision */\n-\n-/*\n- * Wildcard indicating a CPP read or write action\n- *\n- * The action used will be either read or write depending on whether a read or\n- * write instruction/call is performed on the NFP_CPP_ID.  It is recommended that\n- * the RW action is used even if all actions to be performed on a NFP_CPP_ID are\n- * known to be only reads or writes. Doing so will in many cases save NFP CPP\n- * internal software resources.\n- */\n-#define NFP_CPP_ACTION_RW 32\n-\n-#define NFP_CPP_TARGET_ID_MASK 0x1f\n-\n-/*\n- *  NFP_CPP_ID - pack target, token, and action into a CPP ID.\n- *\n- * Create a 32-bit CPP identifier representing the access to be made.\n- * These identifiers are used as parameters to other NFP CPP functions. Some\n- * CPP devices may allow wildcard identifiers to be specified.\n- *\n- * @param[in]\ttarget\tNFP CPP target id\n- * @param[in]\taction\tNFP CPP action id\n- * @param[in]\ttoken\tNFP CPP token id\n- * @return\t\tNFP CPP ID\n- */\n-#define NFP_CPP_ID(target, action, token)                   \\\n-\t((((target) & 0x7f) << 24) | (((token) & 0xff) << 16) | \\\n-\t (((action) & 0xff) << 8))\n-\n-#define NFP_CPP_ISLAND_ID(target, action, token, island)    \\\n-\t((((target) & 0x7f) << 24) | (((token) & 0xff) << 16) | \\\n-\t (((action) & 0xff) << 8) | (((island) & 0xff) << 0))\n-\n-#ifndef _NFP_RESID_NO_C_FUNC\n-\n-/**\n- * Return the NFP CPP target of a NFP CPP ID\n- * @param[in]\tid\tNFP CPP ID\n- * @return\tNFP CPP target\n- */\n-static inline uint8_t\n-NFP_CPP_ID_TARGET_of(uint32_t id)\n-{\n-\treturn (id >> 24) & NFP_CPP_TARGET_ID_MASK;\n-}\n-\n-/*\n- * Return the NFP CPP token of a NFP CPP ID\n- * @param[in]\tid\tNFP CPP ID\n- * @return\tNFP CPP token\n- */\n-static inline uint8_t\n-NFP_CPP_ID_TOKEN_of(uint32_t id)\n-{\n-\treturn (id >> 16) & 0xff;\n-}\n-\n-/*\n- * Return the NFP CPP action of a NFP CPP ID\n- * @param[in]\tid\tNFP CPP ID\n- * @return\tNFP CPP action\n- */\n-static inline uint8_t\n-NFP_CPP_ID_ACTION_of(uint32_t id)\n-{\n-\treturn (id >> 8) & 0xff;\n-}\n-\n-/*\n- * Return the NFP CPP action of a NFP CPP ID\n- * @param[in]   id      NFP CPP ID\n- * @return      NFP CPP action\n- */\n-static inline uint8_t\n-NFP_CPP_ID_ISLAND_of(uint32_t id)\n-{\n-\treturn (id) & 0xff;\n-}\n-\n-#endif /* _NFP_RESID_NO_C_FUNC */\n-\n-/*\n- *  Check if @p chip_family is an ARCH_TH chip.\n- * @param chip_family One of NFP_CHIP_FAMILY_*\n- */\n-#define NFP_FAMILY_IS_ARCH_TH(chip_family) \\\n-\t((int)(chip_family) == (int)NFP_CHIP_FAMILY_NFP6000)\n-\n-/*\n- *  Get the NFP_CHIP_ARCH_* of @p chip_family.\n- * @param chip_family One of NFP_CHIP_FAMILY_*\n- */\n-#define NFP_FAMILY_ARCH(x) \\\n-\t(__extension__ ({ \\\n-\t\ttypeof(x) _x = (x); \\\n-\t\t(NFP_FAMILY_IS_ARCH_TH(_x) ? NFP_CHIP_ARCH_TH : \\\n-\t\tNFP_FAMILY_IS_ARCH_YD(_x) ? NFP_CHIP_ARCH_YD : -1) \\\n-\t}))\n-\n-/*\n- *  Check if @p chip_family is an NFP-6xxx chip.\n- * @param chip_family One of NFP_CHIP_FAMILY_*\n- */\n-#define NFP_FAMILY_IS_NFP6000(chip_family) \\\n-\t((int)(chip_family) == (int)NFP_CHIP_FAMILY_NFP6000)\n-\n-/*\n- *  Make microengine ID for NFP-6xxx.\n- * @param island_id   Island ID.\n- * @param menum       ME number, 0 based, within island.\n- *\n- * NOTE: menum should really be unsigned - MSC compiler throws error (not\n- * warning) if a clause is always true i.e. menum >= 0 if cluster_num is type\n- * unsigned int hence the cast of the menum to an int in that particular clause\n- */\n-#define NFP6000_MEID(a, b)                       \\\n-\t(__extension__ ({ \\\n-\t\ttypeof(a) _a = (a); \\\n-\t\ttypeof(b) _b = (b); \\\n-\t\t(((((int)(_a) & 0x3F) == (int)(_a)) &&   \\\n-\t\t(((int)(_b) >= 0) && ((int)(_b) < 12))) ?    \\\n-\t\t(int)(((_a) << 4) | ((_b) + 4)) : -1) \\\n-\t}))\n-\n-/*\n- *  Do a general sanity check on the ME ID.\n- * The check is on the highest possible island ID for the chip family and the\n- * microengine number must  be a master ID.\n- * @param meid      ME ID as created by NFP6000_MEID\n- */\n-#define NFP6000_MEID_IS_VALID(meid) \\\n-\t(__extension__ ({ \\\n-\t\ttypeof(meid) _a = (meid); \\\n-\t\t((((_a) >> 4) < 64) && (((_a) >> 4) >= 0) && \\\n-\t\t (((_a) & 0xF) >= 4)) \\\n-\t}))\n-\n-/*\n- *  Extract island ID from ME ID.\n- * @param meid   ME ID as created by NFP6000_MEID\n- */\n-#define NFP6000_MEID_ISLAND_of(meid) (((meid) >> 4) & 0x3F)\n-\n-/*\n- * Extract microengine number (0 based) from ME ID.\n- * @param meid   ME ID as created by NFP6000_MEID\n- */\n-#define NFP6000_MEID_MENUM_of(meid) (((meid) & 0xF) - 4)\n-\n-/*\n- * Extract microengine group number (0 based) from ME ID.\n- * The group is two code-sharing microengines, so group  0 refers to MEs 0,1,\n- * group 1 refers to MEs 2,3 etc.\n- * @param meid   ME ID as created by NFP6000_MEID\n- */\n-#define NFP6000_MEID_MEGRP_of(meid) (NFP6000_MEID_MENUM_of(meid) >> 1)\n-\n-#ifndef _NFP_RESID_NO_C_FUNC\n-\n-/*\n- *  Convert a string to an ME ID.\n- *\n- * @param s       A string of format iX.meY\n- * @param endptr  If non-NULL, *endptr will point to the trailing string\n- *                after the ME ID part of the string, which is either\n- *                an empty string or the first character after the separating\n- *                period.\n- * @return     ME ID on success, -1 on error.\n- */\n-int nfp6000_idstr2meid(const char *s, const char **endptr);\n-\n-/*\n- *  Extract island ID from string.\n- *\n- * Example:\n- * char *c;\n- * int val = nfp6000_idstr2island(\"i32.me5\", &c);\n- * // val == 32, c == \"me5\"\n- * val = nfp6000_idstr2island(\"i32\", &c);\n- * // val == 32, c == \"\"\n- *\n- * @param s       A string of format \"iX.anything\" or \"iX\"\n- * @param endptr  If non-NULL, *endptr will point to the trailing string\n- *                after the island part of the string, which is either\n- *                an empty string or the first character after the separating\n- *                period.\n- * @return        If successful, the island ID, -1 on error.\n- */\n-int nfp6000_idstr2island(const char *s, const char **endptr);\n-\n-/*\n- *  Extract microengine number from string.\n- *\n- * Example:\n- * char *c;\n- * int menum = nfp6000_idstr2menum(\"me5.anything\", &c);\n- * // menum == 5, c == \"anything\"\n- * menum = nfp6000_idstr2menum(\"me5\", &c);\n- * // menum == 5, c == \"\"\n- *\n- * @param s       A string of format \"meX.anything\" or \"meX\"\n- * @param endptr  If non-NULL, *endptr will point to the trailing string\n- *                after the ME number part of the string, which is either\n- *                an empty string or the first character after the separating\n- *                period.\n- * @return        If successful, the ME number, -1 on error.\n- */\n-int nfp6000_idstr2menum(const char *s, const char **endptr);\n-\n-/*\n- * Extract context number from string.\n- *\n- * Example:\n- * char *c;\n- * int val = nfp6000_idstr2ctxnum(\"ctx5.anything\", &c);\n- * // val == 5, c == \"anything\"\n- * val = nfp6000_idstr2ctxnum(\"ctx5\", &c);\n- * // val == 5, c == \"\"\n- *\n- * @param s       A string of format \"ctxN.anything\" or \"ctxN\"\n- * @param endptr  If non-NULL, *endptr will point to the trailing string\n- *                after the context number part of the string, which is either\n- *                an empty string or the first character after the separating\n- *                period.\n- * @return        If successful, the context number, -1 on error.\n- */\n-int nfp6000_idstr2ctxnum(const char *s, const char **endptr);\n-\n-/*\n- * Extract microengine group number from string.\n- *\n- * Example:\n- * char *c;\n- * int val = nfp6000_idstr2megrp(\"tg2.anything\", &c);\n- * // val == 2, c == \"anything\"\n- * val = nfp6000_idstr2megrp(\"tg5\", &c);\n- * // val == 2, c == \"\"\n- *\n- * @param s       A string of format \"tgX.anything\" or \"tgX\"\n- * @param endptr  If non-NULL, *endptr will point to the trailing string\n- *                after the ME group part of the string, which is either\n- *                an empty string or the first character after the separating\n- *                period.\n- * @return        If successful, the ME group number, -1 on error.\n- */\n-int nfp6000_idstr2megrp(const char *s, const char **endptr);\n-\n-/*\n- * Create ME ID string of format \"iX[.meY]\".\n- *\n- * @param s      Pointer to char buffer of size NFP_MEID_STR_SZ.\n- *               The resulting string is output here.\n- * @param meid   Microengine ID.\n- * @return       Pointer to \"s\" on success, NULL on error.\n- */\n-const char *nfp6000_meid2str(char *s, int meid);\n-\n-/*\n- * Create ME ID string of format \"name[.meY]\" or \"iX[.meY]\".\n- *\n- * @param s      Pointer to char buffer of size NFP_MEID_STR_SZ.\n- *               The resulting string is output here.\n- * @param meid   Microengine ID.\n- * @return       Pointer to \"s\" on success, NULL on error.\n- *\n- * Similar to nfp6000_meid2str() except use an alias instead of \"iX\"\n- * if one exists for the island.\n- */\n-const char *nfp6000_meid2altstr(char *s, int meid);\n-\n-/*\n- * Create string of format \"iX\".\n- *\n- * @param s         Pointer to char buffer of size NFP_MEID_STR_SZ.\n- *                  The resulting string is output here.\n- * @param island_id Island ID.\n- * @return          Pointer to \"s\" on success, NULL on error.\n- */\n-const char *nfp6000_island2str(char *s, int island_id);\n-\n-/*\n- * Create string of format \"name\", an island alias.\n- *\n- * @param s         Pointer to char buffer of size NFP_MEID_STR_SZ.\n- *                  The resulting string is output here.\n- * @param island_id Island ID.\n- * @return          Pointer to \"s\" on success, NULL on error.\n- */\n-const char *nfp6000_island2altstr(char *s, int island_id);\n-\n-/*\n- * Create string of format \"meY\".\n- *\n- * @param s      Pointer to char buffer of size NFP_MEID_STR_SZ.\n- *               The resulting string is output here.\n- * @param menum  Microengine number within island.\n- * @return       Pointer to \"s\" on success, NULL on error.\n- */\n-const char *nfp6000_menum2str(char *s, int menum);\n-\n-/*\n- * Create string of format \"ctxY\".\n- *\n- * @param s      Pointer to char buffer of size NFP_MEID_STR_SZ.\n- *               The resulting string is output here.\n- * @param ctxnum Context number within microengine.\n- * @return       Pointer to \"s\" on success, NULL on error.\n- */\n-const char *nfp6000_ctxnum2str(char *s, int ctxnum);\n-\n-/*\n- * Create string of format \"tgY\".\n- *\n- * @param s      Pointer to char buffer of size NFP_MEID_STR_SZ.\n- *               The resulting string is output here.\n- * @param megrp  Microengine group number within cluster.\n- * @return       Pointer to \"s\" on success, NULL on error.\n- */\n-const char *nfp6000_megrp2str(char *s, int megrp);\n-\n-/*\n- * Convert a string to an ME ID.\n- *\n- * @param chip_family Chip family ID\n- * @param s           A string of format iX.meY (or clX.meY)\n- * @param endptr      If non-NULL, *endptr will point to the trailing\n- *                    string after the ME ID part of the string, which\n- *                    is either an empty string or the first character\n- *                    after the separating period.\n- * @return            ME ID on success, -1 on error.\n- */\n-int nfp_idstr2meid(int chip_family, const char *s, const char **endptr);\n-\n-/*\n- * Extract island ID from string.\n- *\n- * Example:\n- * char *c;\n- * int val = nfp_idstr2island(chip, \"i32.me5\", &c);\n- * // val == 32, c == \"me5\"\n- * val = nfp_idstr2island(chip, \"i32\", &c);\n- * // val == 32, c == \"\"\n- *\n- * @param chip_family Chip family ID\n- * @param s           A string of format \"iX.anything\" or \"iX\"\n- * @param endptr      If non-NULL, *endptr will point to the trailing\n- *                    string after the ME ID part of the string, which\n- *                    is either an empty string or the first character\n- *                    after the separating period.\n- * @return            The island ID on succes, -1 on error.\n- */\n-int nfp_idstr2island(int chip_family, const char *s, const char **endptr);\n-\n-/*\n- * Extract microengine number from string.\n- *\n- * Example:\n- * char *c;\n- * int menum = nfp_idstr2menum(\"me5.anything\", &c);\n- * // menum == 5, c == \"anything\"\n- * menum = nfp_idstr2menum(\"me5\", &c);\n- * // menum == 5, c == \"\"\n- *\n- * @param chip_family Chip family ID\n- * @param s           A string of format \"meX.anything\" or \"meX\"\n- * @param endptr      If non-NULL, *endptr will point to the trailing\n- *                    string after the ME ID part of the string, which\n- *                    is either an empty string or the first character\n- *                    after the separating period.\n- * @return            The ME number on succes, -1 on error.\n- */\n-int nfp_idstr2menum(int chip_family, const char *s, const char **endptr);\n-\n-/*\n- * Extract context number from string.\n- *\n- * Example:\n- * char *c;\n- * int val = nfp_idstr2ctxnum(\"ctx5.anything\", &c);\n- * // val == 5, c == \"anything\"\n- * val = nfp_idstr2ctxnum(\"ctx5\", &c);\n- * // val == 5, c == \"\"\n- *\n- * @param s       A string of format \"ctxN.anything\" or \"ctxN\"\n- * @param endptr  If non-NULL, *endptr will point to the trailing string\n- *                after the context number part of the string, which is either\n- *                an empty string or the first character after the separating\n- *                period.\n- * @return        If successful, the context number, -1 on error.\n- */\n-int nfp_idstr2ctxnum(int chip_family, const char *s, const char **endptr);\n-\n-/*\n- * Extract microengine group number from string.\n- *\n- * Example:\n- * char *c;\n- * int val = nfp_idstr2megrp(\"tg2.anything\", &c);\n- * // val == 2, c == \"anything\"\n- * val = nfp_idstr2megrp(\"tg5\", &c);\n- * // val == 5, c == \"\"\n- *\n- * @param s       A string of format \"tgX.anything\" or \"tgX\"\n- * @param endptr  If non-NULL, *endptr will point to the trailing string\n- *                after the ME group part of the string, which is either\n- *                an empty string or the first character after the separating\n- *                period.\n- * @return        If successful, the ME group number, -1 on error.\n- */\n-int nfp_idstr2megrp(int chip_family, const char *s, const char **endptr);\n-\n-/*\n- * Create ME ID string of format \"iX[.meY]\".\n- *\n- * @param chip_family Chip family ID\n- * @param s           Pointer to char buffer of size NFP_MEID_STR_SZ.\n- *                    The resulting string is output here.\n- * @param meid        Microengine ID.\n- * @return            Pointer to \"s\" on success, NULL on error.\n- */\n-const char *nfp_meid2str(int chip_family, char *s, int meid);\n-\n-/*\n- * Create ME ID string of format \"name[.meY]\" or \"iX[.meY]\".\n- *\n- * @param chip_family Chip family ID\n- * @param s           Pointer to char buffer of size NFP_MEID_STR_SZ.\n- *                    The resulting string is output here.\n- * @param meid        Microengine ID.\n- * @return            Pointer to \"s\" on success, NULL on error.\n- *\n- * Similar to nfp_meid2str() except use an alias instead of \"iX\"\n- * if one exists for the island.\n- */\n-const char *nfp_meid2altstr(int chip_family, char *s, int meid);\n-\n-/*\n- * Create string of format \"iX\".\n- *\n- * @param chip_family Chip family ID\n- * @param s           Pointer to char buffer of size NFP_MEID_STR_SZ.\n- *                    The resulting string is output here.\n- * @param island_id   Island ID.\n- * @return            Pointer to \"s\" on success, NULL on error.\n- */\n-const char *nfp_island2str(int chip_family, char *s, int island_id);\n-\n-/*\n- * Create string of format \"name\", an island alias.\n- *\n- * @param chip_family Chip family ID\n- * @param s           Pointer to char buffer of size NFP_MEID_STR_SZ.\n- *                    The resulting string is output here.\n- * @param island_id   Island ID.\n- * @return            Pointer to \"s\" on success, NULL on error.\n- */\n-const char *nfp_island2altstr(int chip_family, char *s, int island_id);\n-\n-/*\n- * Create string of format \"meY\".\n- *\n- * @param chip_family Chip family ID\n- * @param s           Pointer to char buffer of size NFP_MEID_STR_SZ.\n- *                    The resulting string is output here.\n- * @param menum       Microengine number within island.\n- * @return            Pointer to \"s\" on success, NULL on error.\n- */\n-const char *nfp_menum2str(int chip_family, char *s, int menum);\n-\n-/*\n- * Create string of format \"ctxY\".\n- *\n- * @param s      Pointer to char buffer of size NFP_MEID_STR_SZ.\n- *               The resulting string is output here.\n- * @param ctxnum Context number within microengine.\n- * @return       Pointer to \"s\" on success, NULL on error.\n- */\n-const char *nfp_ctxnum2str(int chip_family, char *s, int ctxnum);\n-\n-/*\n- * Create string of format \"tgY\".\n- *\n- * @param s      Pointer to char buffer of size NFP_MEID_STR_SZ.\n- *               The resulting string is output here.\n- * @param megrp  Microengine group number within cluster.\n- * @return       Pointer to \"s\" on success, NULL on error.\n- */\n-const char *nfp_megrp2str(int chip_family, char *s, int megrp);\n-\n-/*\n- * Convert a two character string to revision number.\n- *\n- * Revision integer is 0x00 for A0, 0x11 for B1 etc.\n- *\n- * @param s     Two character string.\n- * @return      Revision number, -1 on error\n- */\n-int nfp_idstr2rev(const char *s);\n-\n-/*\n- * Create string from revision number.\n- *\n- * String will be upper case.\n- *\n- * @param s     Pointer to char buffer with size of at least 3\n- *              for 2 characters and string terminator.\n- * @param rev   Revision number.\n- * @return      Pointer to \"s\" on success, NULL on error.\n- */\n-const char *nfp_rev2str(char *s, int rev);\n-\n-/*\n- * Get the NFP CPP address from a string\n- *\n- * String is in the format [island@]target[:[action:[token:]]address]\n- *\n- * @param chip_family Chip family ID\n- * @param tid           Pointer to string to parse\n- * @param cpp_idp       Pointer to CPP ID\n- * @param cpp_addrp     Pointer to CPP address\n- * @return              0 on success, or -1 and errno\n- */\n-int nfp_str2cpp(int chip_family,\n-\t\tconst char *tid,\n-\t\tuint32_t *cpp_idp,\n-\t\tuint64_t *cpp_addrp);\n-\n-\n-#endif /* _NFP_RESID_NO_C_FUNC */\n-\n-#endif /* __NFP_RESID_H__ */\ndiff --git a/drivers/net/nfp/nfpcore/nfp_cpp.h b/drivers/net/nfp/nfpcore/nfp_cpp.h\nindex d657a7c164..2441012b95 100644\n--- a/drivers/net/nfp/nfpcore/nfp_cpp.h\n+++ b/drivers/net/nfp/nfpcore/nfp_cpp.h\n@@ -8,8 +8,6 @@\n \n #include <ethdev_pci.h>\n \n-#include \"nfp-common/nfp_resid.h\"\n-\n struct nfp_cpp_mutex;\n \n /*\n@@ -113,6 +111,101 @@ struct nfp_cpp_operations {\n \t\t\t  unsigned int length);\n };\n \n+/*\n+ * Wildcard indicating a CPP read or write action\n+ *\n+ * The action used will be either read or write depending on whether a read or\n+ * write instruction/call is performed on the NFP_CPP_ID.  It is recommended that\n+ * the RW action is used even if all actions to be performed on a NFP_CPP_ID are\n+ * known to be only reads or writes. Doing so will in many cases save NFP CPP\n+ * internal software resources.\n+ */\n+#define NFP_CPP_ACTION_RW 32\n+\n+#define NFP_CPP_TARGET_ID_MASK 0x1f\n+\n+/*\n+ * Pack target, token, and action into a CPP ID.\n+ *\n+ * Create a 32-bit CPP identifier representing the access to be made.\n+ * These identifiers are used as parameters to other NFP CPP functions.\n+ * Some CPP devices may allow wildcard identifiers to be specified.\n+ *\n+ * @target      NFP CPP target id\n+ * @action      NFP CPP action id\n+ * @token       NFP CPP token id\n+ *\n+ * @return      NFP CPP ID\n+ */\n+#define NFP_CPP_ID(target, action, token)                               \\\n+\t\t((((target) & 0x7f) << 24) | (((token) & 0xff) << 16) | \\\n+\t\t(((action) & 0xff) << 8))\n+\n+/*\n+ * Pack target, token, action, and island into a CPP ID.\n+ * @target      NFP CPP target id\n+ * @action      NFP CPP action id\n+ * @token       NFP CPP token id\n+ * @island      NFP CPP island id\n+ *\n+ * Create a 32-bit CPP identifier representing the access to be made.\n+ * These identifiers are used as parameters to other NFP CPP functions.\n+ * Some CPP devices may allow wildcard identifiers to be specified.\n+ *\n+ * @return      NFP CPP ID\n+ */\n+#define NFP_CPP_ISLAND_ID(target, action, token, island)                \\\n+\t\t((((target) & 0x7f) << 24) | (((token) & 0xff) << 16) | \\\n+\t\t(((action) & 0xff) << 8) | (((island) & 0xff) << 0))\n+\n+/**\n+ * Return the NFP CPP target of a NFP CPP ID\n+ * @id          NFP CPP ID\n+ *\n+ * @return      NFP CPP target\n+ */\n+static inline uint8_t\n+NFP_CPP_ID_TARGET_of(uint32_t id)\n+{\n+\treturn (id >> 24) & NFP_CPP_TARGET_ID_MASK;\n+}\n+\n+/*\n+ * Return the NFP CPP token of a NFP CPP ID\n+ * @id          NFP CPP ID\n+ *\n+ * @return      NFP CPP token\n+ */\n+static inline uint8_t\n+NFP_CPP_ID_TOKEN_of(uint32_t id)\n+{\n+\treturn (id >> 16) & 0xff;\n+}\n+\n+/*\n+ * Return the NFP CPP action of a NFP CPP ID\n+ * @id          NFP CPP ID\n+ *\n+ * @return      NFP CPP action\n+ */\n+static inline uint8_t\n+NFP_CPP_ID_ACTION_of(uint32_t id)\n+{\n+\treturn (id >> 8) & 0xff;\n+}\n+\n+/*\n+ * Return the NFP CPP island of a NFP CPP ID\n+ * @id          NFP CPP ID\n+ *\n+ * @return      NFP CPP island\n+ */\n+static inline uint8_t\n+NFP_CPP_ID_ISLAND_of(uint32_t id)\n+{\n+\treturn id & 0xff;\n+}\n+\n /*\n  * This should be the only external function the transport\n  * module supplies\ndiff --git a/drivers/net/nfp/nfpcore/nfp_target.h b/drivers/net/nfp/nfpcore/nfp_target.h\nindex accedde1f7..03908a894f 100644\n--- a/drivers/net/nfp/nfpcore/nfp_target.h\n+++ b/drivers/net/nfp/nfpcore/nfp_target.h\n@@ -6,7 +6,6 @@\n #ifndef NFP_TARGET_H\n #define NFP_TARGET_H\n \n-#include \"nfp-common/nfp_resid.h\"\n #include \"nfp_cpp.h\"\n \n #define P32 1\n",
    "prefixes": [
        "06/13"
    ]
}