get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 137185,
    "url": "http://patches.dpdk.org/api/patches/137185/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20240226030739.3775514-5-haijie1@huawei.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": "<20240226030739.3775514-5-haijie1@huawei.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20240226030739.3775514-5-haijie1@huawei.com",
    "date": "2024-02-26T03:07:36",
    "name": "[v4,4/7] net/hns3: remove dump format of registers",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "be420934236de7306078f627d32507f19e37b76b",
    "submitter": {
        "id": 2935,
        "url": "http://patches.dpdk.org/api/people/2935/?format=api",
        "name": "Jie Hai",
        "email": "haijie1@huawei.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/20240226030739.3775514-5-haijie1@huawei.com/mbox/",
    "series": [
        {
            "id": 31212,
            "url": "http://patches.dpdk.org/api/series/31212/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=31212",
            "date": "2024-02-26T03:07:32",
            "name": "support dump reigser names and filter them",
            "version": 4,
            "mbox": "http://patches.dpdk.org/series/31212/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/137185/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/137185/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 0A7D443BDE;\n\tMon, 26 Feb 2024 04:12:20 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 8463A42DDE;\n\tMon, 26 Feb 2024 04:12:04 +0100 (CET)",
            "from szxga05-in.huawei.com (szxga05-in.huawei.com [45.249.212.191])\n by mails.dpdk.org (Postfix) with ESMTP id 5D67540271\n for <dev@dpdk.org>; Mon, 26 Feb 2024 04:11:56 +0100 (CET)",
            "from mail.maildlp.com (unknown [172.19.163.17])\n by szxga05-in.huawei.com (SkyGuard) with ESMTP id 4Tjlry1ClHz1S5Gh;\n Mon, 26 Feb 2024 11:06:58 +0800 (CST)",
            "from kwepemd100004.china.huawei.com (unknown [7.221.188.31])\n by mail.maildlp.com (Postfix) with ESMTPS id E75291A0178;\n Mon, 26 Feb 2024 11:11:54 +0800 (CST)",
            "from localhost.localdomain (10.67.165.2) by\n kwepemd100004.china.huawei.com (7.221.188.31) with Microsoft SMTP Server\n (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id\n 15.2.1258.28; Mon, 26 Feb 2024 11:11:54 +0800"
        ],
        "From": "Jie Hai <haijie1@huawei.com>",
        "To": "<dev@dpdk.org>",
        "CC": "<lihuisong@huawei.com>, <fengchengwen@huawei.com>,\n <liuyonglong@huawei.com>, <huangdengdui@huawei.com>, <ferruh.yigit@amd.com>",
        "Subject": "[PATCH v4 4/7] net/hns3: remove dump format of registers",
        "Date": "Mon, 26 Feb 2024 11:07:36 +0800",
        "Message-ID": "<20240226030739.3775514-5-haijie1@huawei.com>",
        "X-Mailer": "git-send-email 2.30.0",
        "In-Reply-To": "<20240226030739.3775514-1-haijie1@huawei.com>",
        "References": "<20231214015650.3738578-1-haijie1@huawei.com>\n <20240226030739.3775514-1-haijie1@huawei.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[10.67.165.2]",
        "X-ClientProxiedBy": "dggems705-chm.china.huawei.com (10.3.19.182) To\n kwepemd100004.china.huawei.com (7.221.188.31)",
        "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": "Since the driver is going to support reporting names of\nall registers, remove the counter and insert of separators\nbetween different register modules.\n\nSigned-off-by: Jie Hai <haijie1@huawei.com>\n---\n drivers/net/hns3/hns3_regs.c | 67 ++++++++++--------------------------\n 1 file changed, 18 insertions(+), 49 deletions(-)",
    "diff": "diff --git a/drivers/net/hns3/hns3_regs.c b/drivers/net/hns3/hns3_regs.c\nindex d77170481a3d..b1c0d538a3c8 100644\n--- a/drivers/net/hns3/hns3_regs.c\n+++ b/drivers/net/hns3/hns3_regs.c\n@@ -10,12 +10,9 @@\n #include \"hns3_rxtx.h\"\n #include \"hns3_regs.h\"\n \n-#define MAX_SEPARATE_NUM\t4\n-#define SEPARATOR_VALUE\t\t0xFFFFFFFF\n-#define REG_NUM_PER_LINE\t4\n-#define REG_LEN_PER_LINE\t(REG_NUM_PER_LINE * sizeof(uint32_t))\n+#define HNS3_64_BIT_REG_SIZE (sizeof(uint64_t) / sizeof(uint32_t))\n \n-static int hns3_get_dfx_reg_line(struct hns3_hw *hw, uint32_t *lines);\n+static int hns3_get_dfx_reg_cnt(struct hns3_hw *hw, uint32_t *count);\n \n static const uint32_t cmdq_reg_addrs[] = {HNS3_CMDQ_TX_ADDR_L_REG,\n \t\t\t\t\t  HNS3_CMDQ_TX_ADDR_H_REG,\n@@ -119,23 +116,22 @@ static int\n hns3_get_regs_length(struct hns3_hw *hw, uint32_t *length)\n {\n \tstruct hns3_adapter *hns = HNS3_DEV_HW_TO_ADAPTER(hw);\n-\tuint32_t cmdq_lines, common_lines, ring_lines, tqp_intr_lines;\n+\tuint32_t cmdq_cnt, common_cnt, ring_cnt, tqp_intr_cnt;\n \tuint32_t regs_num_32_bit, regs_num_64_bit;\n-\tuint32_t dfx_reg_lines;\n+\tuint32_t dfx_reg_cnt;\n \tuint32_t len;\n \tint ret;\n \n-\tcmdq_lines = sizeof(cmdq_reg_addrs) / REG_LEN_PER_LINE + 1;\n+\tcmdq_cnt = sizeof(cmdq_reg_addrs);\n \tif (hns->is_vf)\n-\t\tcommon_lines =\n-\t\t\tsizeof(common_vf_reg_addrs) / REG_LEN_PER_LINE + 1;\n+\t\tcommon_cnt = sizeof(common_vf_reg_addrs);\n \telse\n-\t\tcommon_lines = sizeof(common_reg_addrs) / REG_LEN_PER_LINE + 1;\n-\tring_lines = sizeof(ring_reg_addrs) / REG_LEN_PER_LINE + 1;\n-\ttqp_intr_lines = sizeof(tqp_intr_reg_addrs) / REG_LEN_PER_LINE + 1;\n+\t\tcommon_cnt = sizeof(common_reg_addrs);\n+\tring_cnt = sizeof(ring_reg_addrs);\n+\ttqp_intr_cnt = sizeof(tqp_intr_reg_addrs);\n \n-\tlen = (cmdq_lines + common_lines + ring_lines * hw->tqps_num +\n-\t      tqp_intr_lines * hw->intr_tqps_num) * REG_NUM_PER_LINE;\n+\tlen = cmdq_cnt + common_cnt + ring_cnt * hw->tqps_num +\n+\t      tqp_intr_cnt * hw->intr_tqps_num;\n \n \tif (!hns->is_vf) {\n \t\tret = hns3_get_regs_num(hw, &regs_num_32_bit, &regs_num_64_bit);\n@@ -144,18 +140,16 @@ hns3_get_regs_length(struct hns3_hw *hw, uint32_t *length)\n \t\t\t\t \"ret = %d.\", ret);\n \t\t\treturn ret;\n \t\t}\n-\t\tdfx_reg_lines = regs_num_32_bit * sizeof(uint32_t) /\n-\t\t\t\t\tREG_LEN_PER_LINE + 1;\n-\t\tdfx_reg_lines += regs_num_64_bit * sizeof(uint64_t) /\n-\t\t\t\t\tREG_LEN_PER_LINE + 1;\n+\t\tdfx_reg_cnt = regs_num_32_bit +\n+\t\t\t      regs_num_64_bit * HNS3_64_BIT_REG_SIZE;\n \n-\t\tret = hns3_get_dfx_reg_line(hw, &dfx_reg_lines);\n+\t\tret = hns3_get_dfx_reg_cnt(hw, &dfx_reg_cnt);\n \t\tif (ret) {\n \t\t\thns3_err(hw, \"fail to get the number of dfx registers, \"\n \t\t\t\t \"ret = %d.\", ret);\n \t\t\treturn ret;\n \t\t}\n-\t\tlen += dfx_reg_lines * REG_NUM_PER_LINE;\n+\t\tlen += dfx_reg_cnt;\n \t}\n \n \t*length = len;\n@@ -276,18 +270,6 @@ hns3_get_64_bit_regs(struct hns3_hw *hw, uint32_t regs_num, void *data)\n \treturn 0;\n }\n \n-static int\n-hns3_insert_reg_separator(int reg_num, uint32_t *data)\n-{\n-\tint separator_num;\n-\tint i;\n-\n-\tseparator_num = MAX_SEPARATE_NUM - reg_num % REG_NUM_PER_LINE;\n-\tfor (i = 0; i < separator_num; i++)\n-\t\t*data++ = SEPARATOR_VALUE;\n-\treturn separator_num;\n-}\n-\n static int\n hns3_direct_access_regs(struct hns3_hw *hw, uint32_t *data)\n {\n@@ -302,7 +284,6 @@ hns3_direct_access_regs(struct hns3_hw *hw, uint32_t *data)\n \treg_num = sizeof(cmdq_reg_addrs) / sizeof(uint32_t);\n \tfor (i = 0; i < reg_num; i++)\n \t\t*data++ = hns3_read_dev(hw, cmdq_reg_addrs[i]);\n-\tdata += hns3_insert_reg_separator(reg_num, data);\n \n \tif (hns->is_vf)\n \t\treg_num = sizeof(common_vf_reg_addrs) / sizeof(uint32_t);\n@@ -313,7 +294,6 @@ hns3_direct_access_regs(struct hns3_hw *hw, uint32_t *data)\n \t\t\t*data++ = hns3_read_dev(hw, common_vf_reg_addrs[i]);\n \t\telse\n \t\t\t*data++ = hns3_read_dev(hw, common_reg_addrs[i]);\n-\tdata += hns3_insert_reg_separator(reg_num, data);\n \n \treg_num = sizeof(ring_reg_addrs) / sizeof(uint32_t);\n \tfor (j = 0; j < hw->tqps_num; j++) {\n@@ -321,7 +301,6 @@ hns3_direct_access_regs(struct hns3_hw *hw, uint32_t *data)\n \t\tfor (i = 0; i < reg_num; i++)\n \t\t\t*data++ = hns3_read_dev(hw,\n \t\t\t\t\t\tring_reg_addrs[i] + reg_offset);\n-\t\tdata += hns3_insert_reg_separator(reg_num, data);\n \t}\n \n \treg_num = sizeof(tqp_intr_reg_addrs) / sizeof(uint32_t);\n@@ -330,7 +309,6 @@ hns3_direct_access_regs(struct hns3_hw *hw, uint32_t *data)\n \t\tfor (i = 0; i < reg_num; i++)\n \t\t\t*data++ = hns3_read_dev(hw, tqp_intr_reg_addrs[i] +\n \t\t\t\t\t\treg_offset);\n-\t\tdata += hns3_insert_reg_separator(reg_num, data);\n \t}\n \treturn data - origin_data_ptr;\n }\n@@ -406,17 +384,15 @@ hns3_dfx_reg_fetch_data(struct hns3_cmd_desc *desc, int bd_num, uint32_t *reg)\n \t\tindex = i % HNS3_CMD_DESC_DATA_NUM;\n \t\t*reg++ = desc[desc_index].data[index];\n \t}\n-\treg_num += hns3_insert_reg_separator(reg_num, reg);\n \n \treturn reg_num;\n }\n \n static int\n-hns3_get_dfx_reg_line(struct hns3_hw *hw, uint32_t *lines)\n+hns3_get_dfx_reg_cnt(struct hns3_hw *hw, uint32_t *count)\n {\n \tint opcode_num = RTE_DIM(hns3_dfx_reg_opcode_list);\n \tuint32_t bd_num_list[opcode_num];\n-\tuint32_t bd_num, data_len;\n \tint ret;\n \tint i;\n \n@@ -424,11 +400,8 @@ hns3_get_dfx_reg_line(struct hns3_hw *hw, uint32_t *lines)\n \tif (ret)\n \t\treturn ret;\n \n-\tfor (i = 0; i < opcode_num; i++) {\n-\t\tbd_num = bd_num_list[i];\n-\t\tdata_len = bd_num * HNS3_CMD_DESC_DATA_NUM * sizeof(uint32_t);\n-\t\t*lines += data_len / REG_LEN_PER_LINE + 1;\n-\t}\n+\tfor (i = 0; i < opcode_num; i++)\n+\t\t*count += bd_num_list[i] * HNS3_CMD_DESC_DATA_NUM;\n \n \treturn 0;\n }\n@@ -475,7 +448,6 @@ hns3_get_dfx_regs(struct hns3_hw *hw, void **data)\n int\n hns3_get_regs(struct rte_eth_dev *eth_dev, struct rte_dev_reg_info *regs)\n {\n-#define HNS3_64_BIT_REG_SIZE (sizeof(uint64_t) / sizeof(uint32_t))\n \tstruct hns3_adapter *hns = eth_dev->data->dev_private;\n \tstruct hns3_hw *hw = &hns->hw;\n \tuint32_t regs_num_32_bit;\n@@ -520,7 +492,6 @@ hns3_get_regs(struct rte_eth_dev *eth_dev, struct rte_dev_reg_info *regs)\n \t\treturn ret;\n \t}\n \tdata += regs_num_32_bit;\n-\tdata += hns3_insert_reg_separator(regs_num_32_bit, data);\n \n \tret = hns3_get_64_bit_regs(hw, regs_num_64_bit, data);\n \tif (ret) {\n@@ -528,8 +499,6 @@ hns3_get_regs(struct rte_eth_dev *eth_dev, struct rte_dev_reg_info *regs)\n \t\treturn ret;\n \t}\n \tdata += regs_num_64_bit * HNS3_64_BIT_REG_SIZE;\n-\tdata += hns3_insert_reg_separator(regs_num_64_bit *\n-\t\t\t\t\t  HNS3_64_BIT_REG_SIZE, data);\n \n \treturn  hns3_get_dfx_regs(hw, (void **)&data);\n }\n",
    "prefixes": [
        "v4",
        "4/7"
    ]
}