get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 44405,
    "url": "http://patches.dpdk.org/api/patches/44405/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1536333719-32155-11-git-send-email-igor.russkikh@aquantia.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": "<1536333719-32155-11-git-send-email-igor.russkikh@aquantia.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1536333719-32155-11-git-send-email-igor.russkikh@aquantia.com",
    "date": "2018-09-07T15:21:48",
    "name": "[10/21] net/atlantic: add hw adapter structures and defines",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "5039e20b1f71003a78aa65c0a0e745c43570558b",
    "submitter": {
        "id": 1124,
        "url": "http://patches.dpdk.org/api/people/1124/?format=api",
        "name": "Igor Russkikh",
        "email": "igor.russkikh@aquantia.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/1536333719-32155-11-git-send-email-igor.russkikh@aquantia.com/mbox/",
    "series": [
        {
            "id": 1228,
            "url": "http://patches.dpdk.org/api/series/1228/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=1228",
            "date": "2018-09-07T15:21:39",
            "name": "net/atlantic: Aquantia aQtion 10G NIC Family DPDK PMD driver",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/1228/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/44405/comments/",
    "check": "fail",
    "checks": "http://patches.dpdk.org/api/patches/44405/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id BC64C5F19;\n\tFri,  7 Sep 2018 17:23:39 +0200 (CEST)",
            "from NAM03-BY2-obe.outbound.protection.outlook.com\n\t(mail-by2nam03on0089.outbound.protection.outlook.com [104.47.42.89])\n\tby dpdk.org (Postfix) with ESMTP id 7C9CD4F9C\n\tfor <dev@dpdk.org>; Fri,  7 Sep 2018 17:23:25 +0200 (CEST)",
            "from ubuntubox.rdc.aquantia.com (95.79.108.179) by\n\tBLUPR0701MB1652.namprd07.prod.outlook.com (2a01:111:e400:58c6::22)\n\twith Microsoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1122.16;\n\tFri, 7 Sep 2018 15:23:19 +0000"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=AQUANTIA1COM.onmicrosoft.com; s=selector1-aquantia-com;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n\tbh=hqqCx0KSJQ+aE8Gx6fTkLxR2bSefhtelug8af7wPpNg=;\n\tb=f9e71MprOtYKzPEA8UioCDEqT5xwWDaW4ojxL7QYfELb6rsrjuEKugK1tTgzpIcbtQMnaMcJkeRSIpABE0pDpRvvzkTYJbhr1a8RxptLkAF0LlH5oJUAwpGLRoIow2b/B65ArS9funxk2NxvT2n5k1JRPV9WLcYDyLCcrsqdi/A=",
        "Authentication-Results": "spf=none (sender IP is )\n\tsmtp.mailfrom=Igor.Russkikh@aquantia.com; ",
        "From": "Igor Russkikh <igor.russkikh@aquantia.com>",
        "To": "dev@dpdk.org",
        "Cc": "pavel.belous@aquantia.com, Nadezhda.Krupnina@aquantia.com,\n\tigor.russkikh@aquantia.com, Simon.Edelhaus@aquantia.com,\n\tCorey Melton <comelton@cisco.com>, Ashish Kumar <ashishk2@cisco.com>",
        "Date": "Fri,  7 Sep 2018 18:21:48 +0300",
        "Message-Id": "<1536333719-32155-11-git-send-email-igor.russkikh@aquantia.com>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<1536333719-32155-1-git-send-email-igor.russkikh@aquantia.com>",
        "References": "<1536333719-32155-1-git-send-email-igor.russkikh@aquantia.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[95.79.108.179]",
        "X-ClientProxiedBy": "BN6PR20CA0060.namprd20.prod.outlook.com\n\t(2603:10b6:404:151::22) To BLUPR0701MB1652.namprd07.prod.outlook.com\n\t(2a01:111:e400:58c6::22)",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "8cb4757c-822a-4635-135f-08d614d5d885",
        "X-Microsoft-Antispam": "BCL:0; PCL:0;\n\tRULEID:(7020095)(4652040)(8989137)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(2017052603328)(7153060)(7193020);\n\tSRVR:BLUPR0701MB1652; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; BLUPR0701MB1652;\n\t3:kgJ7AfS2QrSugInZUxj53qP54cD99ty2bD0Bf8abNOe3n5dEaC+nNUaPCjKR751tPcKpDOK0Jk8/SDEhaUEXdZqBY/EvCWMfs13QRk/DvPmOy/b4BpWeEoRJ2pUeKF88quMblLqr28GjtdTZxVgoA9xeRtjnWpAJX31f466C6Qy5EPQDVvWmM5BC5gNeMHeO610peAqX9vGZ3I5B8J0JT00GIvxaeVCAdWaykqgYLrWZ6KVa5M2jpOPXHIBeohsg;\n\t25:kpzh1VQ/6UIU1HjLvmAWzcJzAXvd6U9BOe0U9IrUPs9tOByu4MkSigdWbImwkfNfEX/KesszJjF6QcEBTRE670ngfJeGfIeYUxq3Hivf5ZhMyIgIJaqLDrCSx+3sjLv3k33FhFH4R5CMhRDSsQLkiQhFl4bETaaOhHaOb32ocyg5AhNjAT/pEqAYAL/pd2JI7tZVwTdGWtoTAkt7Tv9zL/lJ2Xy+hsXu/QpJ19z2xkavX6jIBs0HaXuLowqKE6DnTGM3bQ0L/GSrkuWGMF0jwrZoCnnK4IQ3/QUIZKOmHNJ+4EcegIKmyE9DXCNfYAQ1iStdTwY4f21c7XBYYbrH8g==;\n\t31:dTwUqQWuuvvWCrhIzn0QIJL2AN3EIK7dHs6ke+5mICyZ6dIHHrWTC+lE+3r/XhvypMukHXMomEpYmRo1mG1Y2p5H7cVlW51oFXmZJxCI9kBytFzA7Mx4VYa5kQnAI7dc05+8iaRzb/29JR0URPmnU2JmAoNMXQ3gQvMHemsaOL8d0M5vywh2nL/WjPCchlMXzWO+hTIvQSu25xNFoyy9L4rLPmN8ZuWuNjvoP7h+Bzo=",
            "1; BLUPR0701MB1652;\n\t20:uJNydd/r8bbvUXzCSEVEn+Gxge6aIaMM9Zg3Dicv/j0diXtbS6vm6WyHDVXrbPwkiGw82XOKUGDWmOxJwg9atiVy3UOIvpgZf04MUc+cDjx+XTHOmV+0tTYaI51cXHoCc/ATxJOE4oj7AGWwARysQvzmhSjsoto2kvsKRYpMCykqgFOt4/BiPVYyKz7DZhG9rCtN3Q49qNgcZNT1ov0M+qHlbbpdRpSkDMBu7NjeaXosQrKkEUC35dqRDLFykXp5KtD9U9Z5xD5HaIPqRN7g0z4FTqsU33b1ziD5luw8KRALTx2O+BhagR/Rit9XbyFwh4gyo6i+ag/kzYkNoxvETg+5x2eOrIlPjKoRK01vtxaiBBfTtOt8G24fUmKvUzH8AZVMscyuEdFZSFt4iCG4zhdRD63T7tbw2kMjkvu8Oy/SVIsRp8Rg87F9cV3dtIrSeKw2ZT4Q4Md4LTOqXLnyidvO1JL+jXdzISzKpiIsvsmRBhrbKxYgBhq/4W19Apg+;\n\t4:Ut51UaFxPLjEy6rZPE0CFooyzg1M2lKfYkhDhk+fGDJaGYUfyoJyQ2syXZP7UPXRtDZm8bS8YnI1wpc/kZLnHg53TcOR1huR6BUmlYJokx6p6lwahbnlphuMN0kSm3bQQy6y3j1OAAyvKycL38ufuSCDX0uZGgFmQokr3auMA2CJ0qysNewsZxK5rOt2IwAuPjdv85gfoShT6qgoE0+ogEh0IiikW8cCMeijsramZrZ6auIeaVrTjaNrM4RfMd3PBoJkWkClbDktaGAY6fhUbQ==",
            "=?us-ascii?Q?1; BLUPR0701MB1652;\n\t23:cK+DFJRjGIuzmarN3syOxD+hW4Gl6zzOURp5fbc?=\n\tX2+5/sVtCVew9zmJGpSyk5cLTkjw/hyYF8PbRKYP+uz52z1PmoSgp8lz+2vT5pyIU4FAdc5sgI23pnyaWYLOlhNmKy6sTPa0MB2GWlPjAyPzI9PbY0y1K5xtOxZtZ1zZBJqEDw8Z+wlDtuD0J8U99vP+bwbMJLSnRboQE/naa52BlMkySXkqbtBngAREDvHIWU8CFV3Clkg2c44Up4l+6kQ2zQWz41QJvNzQz/L3+VfdQX3QMm+okUPcvn0PcE0L3YVte+TrocWUHLb1hdtq9eWKkDnHYM6xSKvVFrMaKh8I6uJaiaDOhx2eZKJluh83Khi9fOKtjgkMEYd6WyQNLCl+MN5JbgiOnZ6f1xV9gUTvbjDCP5DFlUJS1aqQ5IqYL6xA+uLV/8vq951TMrgjYoIgZREcbkv/0WqcedV3KM/qlHnH1kYKG/NZzlYojzcM4CKEC4W2Yx8C5/OeH2pdQwIA8dkdNaRJZm7n+kifhfH8mJiJAZGhdTVccWW3piNnWTnNW9ys2IL4hwn7tI/ektNlo5JJXmEtEu6CQJKNV5y3k5cQqXFyVa0cpoIvijNtEoMls64sV8bG8f4oegpiGEtTyDxO7t7vnyrv+txAjTcORuDuP3bL9ETp2jQZSdFW9uOqpDSFQ9gpdetZSJQLZKrKp9mhfV9hqT9qhEWl1qJsHLFvr/CBKq0zwexfm6bpLJp5/VUtToTc/y/nD0ewrdcpWvgnj55OJ6YIDYX1qk+0GM1mOpkD6S9e3yUfaLcnIr2H6PJb/tTwRsv1JD5jD5esW7ZkGh7QVN+2C2COC356S8zlIzN5adJ4269xYdTE+nBvcsi5MAHm7I9ckKjDVcUESDRp/BgDM1b1Hnt7L+d9CYuDt/hO/g+vbggc48oIZM8SqN0u1AQU/Gl31j8NJdWfjfgDGT8xPRQT3Wv7EOfbQv/9bJ5yPSDb7fb3Yp1UjUBbrHna70uQBr8XAxkqe1xwOgLIpFlppicsm+qAqDLzl52QrHXUdFIk04NapZFrAt4lkGkC8qlq9c5CyeoWp00LT3TXdXnetiG5MrQu5RCS5jH7wBmPdaQaZDz+LqSVyatjkKBMSbpx5nFzjqeu5y9LNgmyOhjn3ZBX64afPAFVHXKZ+XyYXm2aLtLYQB8zKsNvVQTp+b+wbHNSIBWaob3/Ym4KpZW3RPNpziEmdy4IHiOAl/3lAIl+nbXW7BY2K2nFeekxpbAKZLp/SOU/5HbyRn0K0VR8Mcng00C0w7lbcAg==",
            "1; BLUPR0701MB1652;\n\t6:r4G+2kPQSTANzWNsFvp2lsmEXHqJBDanK3u5ZYQSOrjWsqJLX/6YzViuFJ04HNMH9MoUWGsFcdNa4UiUrU7mH+Joz0X29m2ybEcHC2axvzxPdhO2wGufg7fy5RMxvPRmNyKqSuD40DzkRe9o0poVPRBVPm90ShgAYyT2Tn+TxaTiK6BpS87luboURJX3J0GeCSGoIEZoxZ8vyyy5U8ZWh/VBkbRRlJ62bVXuOrIW3Y8FjpuZXtnD/MzgPc7Fe7/JbZtzV5Oy+ZpBH6itQxzWKREVaGm9xPMvbgydBwtH+oLdAAdsiDG5nMZ5tHv00NEcjTDPCoN07XoEykw6lhAOSOQeDpDQw/JVDH80Mr1sLx60I3TQFpiaavnuBOi2f0n1yV37g9MjHoKL36zXUjEkgjM627DgOltGCVqZi/Q4hiPH7CPi6pV3KZmiMxb/oPT+f04+njUJlqBzmlcKwMjdCw==;\n\t5:jLRNCJB/0adP/dLpKxYYDbjma7fA/pgi+fQVzF9fIcxkGABHrmmHGGG/2ZxFVMt6KWK9Uy3Gj1Hm0XG8zaY/x0B9tfRiM5BUZ/jOeXNNuL5lhj8t2aQFEl453dL3WMErJ2gF4WaPhh/0t4h0jNP/0WKMElri/mS//VzJ5NswWsQ=;\n\t7:sPqpwWCUV2wOsggO70pp0ZTKaN1CR7rVSPXTvF4b+iwkKt+JOr+Z5Nbmj/7W3RyyRlDbUoYpuMBcTvU+3tL3vwY4/xDgPLXUZaGhrm4SbY/aun3MryPbqeXmA2V71YeHlEqMq31cBDwC+j3yabV01c860NarmOkRX6C/3gVwQtIE07NujeP3ZxevHkyjdD3K+AdOAb0CSsLIb0lSmmy+Y3JBPiVU9l4iguSBBSgIGKdVdn1FDTUrbkNLZZQZYREj"
        ],
        "X-MS-TrafficTypeDiagnostic": "BLUPR0701MB1652:",
        "X-Microsoft-Antispam-PRVS": "<BLUPR0701MB1652568722373754CD3CB6B498000@BLUPR0701MB1652.namprd07.prod.outlook.com>",
        "X-Exchange-Antispam-Report-Test": "UriScan:;",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(6040522)(2401047)(5005006)(8121501046)(93006095)(93001095)(3231311)(944501410)(52105095)(10201501046)(3002001)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123562045)(20161123564045)(20161123560045)(201708071742011)(7699050);\n\tSRVR:BLUPR0701MB1652; BCL:0; PCL:0; RULEID:; SRVR:BLUPR0701MB1652; ",
        "X-Forefront-PRVS": "07880C4932",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(39850400004)(396003)(376002)(366004)(346002)(136003)(189003)(199004)(81156014)(81166006)(44832011)(8936002)(2351001)(486006)(106356001)(2361001)(105586002)(446003)(2906002)(50226002)(476003)(11346002)(956004)(2616005)(305945005)(7736002)(16586007)(316002)(54906003)(14444005)(16526019)(66066001)(26005)(7696005)(52116002)(8676002)(51416003)(76176011)(186003)(386003)(68736007)(478600001)(6666003)(6916009)(6486002)(5660300001)(53936002)(47776003)(4326008)(25786009)(86362001)(48376002)(50466002)(575784001)(72206003)(6116002)(97736004)(36756003)(3846002);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0701MB1652;\n\tH:ubuntubox.rdc.aquantia.com; \n\tFPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; ",
        "Received-SPF": "None (protection.outlook.com: aquantia.com does not designate\n\tpermitted sender hosts)",
        "X-Microsoft-Antispam-Message-Info": "oMf/qBJPW27mvAmz0qd2R6TlYwo39r5H2mPgecZpLwkGwTKiqEggFFKU7yzh8+xBg2zvpn7iI2wbm0DpqhthUWlb7KGSha4u4B42aSDaVkFO+NF+bSnX/1YNyYJv1IwNoyfAMw5gQOu7dXp8+nP88tS3kBDnqFP2K0f4Otn+k61b3m7E+nm3+pLHyoz00ejtrXEHrpdlk6P66Yvg/rxy0rFPoWESp2OqkJntH5NVQVkUPjKbZDcetJz0jtjthbQi80JQMoVcs7cH03PHhuTf2jRw4pJgDwzpmvSqsPBpSClNi5SOicvWFnj9lV/lruZmvGK/ta1p6z4t0LTasi6BAENz82pcA3K7S+7LFfmAYMY=",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-OriginatorOrg": "aquantia.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "07 Sep 2018 15:23:19.9262\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "8cb4757c-822a-4635-135f-08d614d5d885",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "83e2e134-991c-4ede-8ced-34d47e38e6b1",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "BLUPR0701MB1652",
        "Subject": "[dpdk-dev] [PATCH 10/21] net/atlantic: add hw adapter structures\n\tand defines",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n\t<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\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "From: Pavel Belous <pavel.belous@aquantia.com>\n\nThese declare statistic structures, hw internal structures and variables.\n\nSigned-off-by: Igor Russkikh <igor.russkikh@aquantia.com>\n---\n drivers/net/atlantic/atl_ethdev.h |   9 ++\n drivers/net/atlantic/atl_types.h  | 202 +++++++++++++++++++++++++++++++++++++-\n 2 files changed, 210 insertions(+), 1 deletion(-)",
    "diff": "diff --git a/drivers/net/atlantic/atl_ethdev.h b/drivers/net/atlantic/atl_ethdev.h\nindex 5b9fc63c6..ce4bc9544 100644\n--- a/drivers/net/atlantic/atl_ethdev.h\n+++ b/drivers/net/atlantic/atl_ethdev.h\n@@ -16,12 +16,18 @@\n #define ATL_FLAG_NEED_LINK_UPDATE (uint32_t)(1 << 0)\n #define ATL_FLAG_NEED_LINK_CONFIG (uint32_t)(4 << 0)\n \n+struct atl_interrupt {\n+\tuint32_t flags;\n+\tuint32_t mask;\n+};\n+\n /*\n  * Structure to store private data for each driver instance (for each port).\n  */\n struct atl_adapter {\n \tstruct aq_hw_s             hw;\n \tstruct aq_hw_cfg_s         hw_cfg;\n+\tstruct atl_sw_stats        sw_stats;\n \tstruct atl_interrupt       intr;\n };\n \n@@ -31,6 +37,9 @@ struct atl_adapter {\n #define ATL_DEV_PRIVATE_TO_HW(adapter) \\\n \t(&((struct atl_adapter *)adapter)->hw)\n \n+#define ATL_DEV_PRIVATE_TO_STATS(adapter) \\\n+\t(&((struct atl_adapter *)adapter)->sw_stats)\n+\n #define ATL_DEV_PRIVATE_TO_INTR(adapter) \\\n \t(&((struct atl_adapter *)adapter)->intr)\n \ndiff --git a/drivers/net/atlantic/atl_types.h b/drivers/net/atlantic/atl_types.h\nindex f1558b0a5..60cbb6cda 100644\n--- a/drivers/net/atlantic/atl_types.h\n+++ b/drivers/net/atlantic/atl_types.h\n@@ -29,6 +29,206 @@ typedef int\t\tbool;\n #define min(a,b)\tRTE_MIN(a,b)\n #define max(a,b)\tRTE_MAX(a,b)\n \n-#define wmb()\t\trte_wmb()\n+#define wmb() rte_wmb()\n+\n+#include \"hw_atl/hw_atl_b0_internal.h\"\n+#include \"hw_atl/hw_atl_utils.h\"\n+\n+struct aq_hw_link_status_s {\n+\tunsigned int mbps;\n+};\n+\n+struct aq_stats_s {\n+\tu64 uprc;\n+\tu64 mprc;\n+\tu64 bprc;\n+\tu64 erpt;\n+\tu64 uptc;\n+\tu64 mptc;\n+\tu64 bptc;\n+\tu64 erpr;\n+\tu64 mbtc;\n+\tu64 bbtc;\n+\tu64 mbrc;\n+\tu64 bbrc;\n+\tu64 ubrc;\n+\tu64 ubtc;\n+\tu64 dpc;\n+\tu64 dma_pkt_rc;\n+\tu64 dma_pkt_tc;\n+\tu64 dma_oct_rc;\n+\tu64 dma_oct_tc;\n+};\n+\n+enum atl_bus_speed {\n+        atl_bus_speed_unknown = 0,\n+        atl_bus_speed_2500,\n+        atl_bus_speed_5000,\n+        atl_bus_speed_reserved\n+};\n+\n+enum atl_bus_width {\n+        atl_bus_width_unknown = 0,\n+        atl_bus_width_pcie_x1,\n+        atl_bus_width_pcie_x2,\n+        atl_bus_width_pcie_x4 = 4,\n+        atl_bus_width_pcie_x8 = 8,\n+        atl_bus_width_reserved\n+};\n+\n+struct atl_bus_info {\n+        enum atl_bus_speed speed;\n+        enum atl_bus_width width;\n+\n+        u16 func;\n+        u16 pci_cmd_word;\n+};\n+\n+struct aq_rss_parameters {\n+\tu16 base_cpu_number;\n+\tu16 indirection_table_size;\n+\tu16 hash_secret_key_size;\n+\tu32 hash_secret_key[HW_ATL_B0_RSS_HASHKEY_BITS/8];\n+\tu8 indirection_table[HW_ATL_B0_RSS_REDIRECTION_MAX];\n+};\n+\n+struct aq_hw_cfg_s {\n+\tbool is_lro;\n+\tbool is_rss;\n+\tunsigned int num_rss_queues;\n+\tint wol;\n+\n+\tint link_speed_msk;\n+\tint irq_type;\n+\tint irq_mask;\n+\tunsigned int vecs;\n+\n+\tbool vlan_strip;\n+\tuint32_t vlan_filter[HW_ATL_B0_MAX_VLAN_IDS];\n+\tuint32_t flow_control;\n+\n+\tstruct aq_rss_parameters aq_rss;\n+};\n+\n+struct aq_hw_s {\n+\tvoid *back;\n+\n+\tstruct atl_bus_info bus;\n+\n+\tconst u32 *mvals;\n+\tu16 device_id;\n+\tu16 vendor_id;\n+\tu16 subsystem_device_id;\n+\tu16 subsystem_vendor_id;\n+\tu8 revision_id;\n+\tbool adapter_stopped;\n+\tint api_version;\n+\tbool force_full_reset;\n+\tbool allow_unsupported_sfp;\n+\tbool wol_enabled;\n+\tbool need_crosstalk_fix;\n+\n+\tu8 rbl_enabled:1;\n+\tstruct aq_hw_cfg_s *aq_nic_cfg;\n+\tconst struct aq_fw_ops *aq_fw_ops;\n+\tvoid *mmio;\n+\n+\tstruct aq_hw_link_status_s aq_link_status;\n+\tbool is_autoneg;\n+\n+\tstruct hw_aq_atl_utils_mbox mbox;\n+\tstruct hw_atl_stats_s last_stats;\n+\tstruct aq_stats_s curr_stats;\n+\n+\tu64 speed;\n+\tu32 itr_tx;\n+\tu32 itr_rx;\n+\tunsigned int chip_features;\n+\tu32 fw_ver_actual;\n+\tu32 mbox_addr;\n+\tu32 rpc_addr;\n+\tu32 rpc_tid;\n+\tstruct hw_aq_atl_utils_fw_rpc rpc;\n+};\n+\n+struct aq_fw_ops {\n+\tint (*init)(struct aq_hw_s *self);\n+\n+\tint (*deinit)(struct aq_hw_s *self);\n+\n+\tint (*reset)(struct aq_hw_s *self);\n+\n+\tint (*get_mac_permanent)(struct aq_hw_s *self, u8 *mac);\n+\n+\tint (*set_link_speed)(struct aq_hw_s *self, u32 speed);\n+\n+\tint (*set_state)(struct aq_hw_s *self,\n+\t\t\tenum hal_atl_utils_fw_state_e state);\n+\n+\tint (*update_link_status)(struct aq_hw_s *self);\n+\n+\tint (*update_stats)(struct aq_hw_s *self);\n+\n+\tint (*set_power)(struct aq_hw_s *self, unsigned int power_state,\n+\t\t\tu8 *mac);\n+\n+\tint (*get_temp)(struct aq_hw_s *self, int *temp);\n+\n+\tint (*get_cable_len)(struct aq_hw_s *self, int *cable_len);\n+\n+\tint (*set_eee_rate)(struct aq_hw_s *self, u32 speed);\n+\n+\tint (*get_eee_rate)(struct aq_hw_s *self, u32 *rate,\n+\t\t\tu32 *supported_rates);\n+\n+\tint (*set_flow_control)(struct aq_hw_s *self);\n+\n+\tint (*led_control)(struct aq_hw_s *self, u32 mode);\n+\n+\tint (*get_eeprom)(struct aq_hw_s *self, u32 *data, u32 len);\n+\n+\tint (*set_eeprom)(struct aq_hw_s *self, u32 *data, u32 len);\n+};\n+\n+struct atl_sw_stats {\n+\tu64 crcerrs;\n+\tu64 errbc;\n+\tu64 mspdc;\n+\tu64 mpctotal;\n+\tu64 mpc[8];\n+\tu64 mlfc;\n+\tu64 mrfc;\n+\tu64 rlec;\n+\tu64 lxontxc;\n+\tu64 lxonrxc;\n+\tu64 lxofftxc;\n+\tu64 lxoffrxc;\n+\tu64 pxontxc[8];\n+\tu64 pxonrxc[8];\n+\tu64 pxofftxc[8];\n+\tu64 pxoffrxc[8];\n+\tu64 gprc;\n+\tu64 bprc;\n+\tu64 mprc;\n+\tu64 gptc;\n+\tu64 gorc;\n+\tu64 gotc;\n+\tu64 tor;\n+\tu64 tpr;\n+\tu64 tpt;\n+\tu64 mptc;\n+\tu64 bptc;\n+\tu64 xec;\n+\tu64 fccrc;\n+\tu64 ldpcec;\n+\tu64 pcrc8ec;\n+\n+\tu64 rx_nombuf;\n+\tu64 q_ipackets[RTE_ETHDEV_QUEUE_STAT_CNTRS];\n+\tu64 q_opackets[RTE_ETHDEV_QUEUE_STAT_CNTRS];\n+\tu64 q_ibytes[RTE_ETHDEV_QUEUE_STAT_CNTRS];\n+\tu64 q_obytes[RTE_ETHDEV_QUEUE_STAT_CNTRS];\n+\tu64 q_errors[RTE_ETHDEV_QUEUE_STAT_CNTRS];\n+};\n \n #endif\n",
    "prefixes": [
        "10/21"
    ]
}