get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 74830,
    "url": "http://patches.dpdk.org/api/patches/74830/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20200727053451.22214-8-guinanx.sun@intel.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": "<20200727053451.22214-8-guinanx.sun@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200727053451.22214-8-guinanx.sun@intel.com",
    "date": "2020-07-27T05:34:50",
    "name": "[v2,7/8] net/i40e/base: replace AQ command for NVM update",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "30092d0dfd3779cc097293ff49d7a04028ec6781",
    "submitter": {
        "id": 1476,
        "url": "http://patches.dpdk.org/api/people/1476/?format=api",
        "name": "Guinan Sun",
        "email": "guinanx.sun@intel.com"
    },
    "delegate": {
        "id": 1540,
        "url": "http://patches.dpdk.org/api/users/1540/?format=api",
        "username": "qzhan15",
        "first_name": "Qi",
        "last_name": "Zhang",
        "email": "qi.z.zhang@intel.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20200727053451.22214-8-guinanx.sun@intel.com/mbox/",
    "series": [
        {
            "id": 11306,
            "url": "http://patches.dpdk.org/api/series/11306/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=11306",
            "date": "2020-07-27T05:34:43",
            "name": "update i40e base code",
            "version": 2,
            "mbox": "http://patches.dpdk.org/series/11306/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/74830/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/74830/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 dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id DBAC4A0524;\n\tMon, 27 Jul 2020 08:01:27 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 772021C10C;\n\tMon, 27 Jul 2020 08:00:41 +0200 (CEST)",
            "from mga06.intel.com (mga06.intel.com [134.134.136.31])\n by dpdk.org (Postfix) with ESMTP id 8163C1C10A\n for <dev@dpdk.org>; Mon, 27 Jul 2020 08:00:32 +0200 (CEST)",
            "from orsmga002.jf.intel.com ([10.7.209.21])\n by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 26 Jul 2020 23:00:32 -0700",
            "from intel.sh.intel.com ([10.239.255.18])\n by orsmga002.jf.intel.com with ESMTP; 26 Jul 2020 23:00:30 -0700"
        ],
        "IronPort-SDR": [
            "\n olb6YQY0+9WQSxC1RPGo56BaOMPch8bnEYG9Su7g1H8Y2bYhNMMPul1thYGqwqrZnnGjTmYUrK\n 0l6/NBBGh26Q==",
            "\n iQrlP2fvvKlv2Ls0gReqxibe2FhHeNZ2k1mRsulFKBlrGZSwT192weXRRLkO35KvGjPSSEHyG2\n 5l0ixiJgTiRg=="
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6000,8403,9694\"; a=\"212486138\"",
            "E=Sophos;i=\"5.75,401,1589266800\"; d=\"scan'208\";a=\"212486138\"",
            "E=Sophos;i=\"5.75,401,1589266800\"; d=\"scan'208\";a=\"303344602\""
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "From": "Guinan Sun <guinanx.sun@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "Beilei Xing <beilei.xing@intel.com>, Jeff Guo <jia.guo@intel.com>,\n Guinan Sun <guinanx.sun@intel.com>,\n Jaroslaw Ilgiewicz <jaroslaw.ilgiewicz@intel.com>",
        "Date": "Mon, 27 Jul 2020 05:34:50 +0000",
        "Message-Id": "<20200727053451.22214-8-guinanx.sun@intel.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20200727053451.22214-1-guinanx.sun@intel.com>",
        "References": "<20200721074000.30449-1-guinanx.sun@intel.com>\n <20200727053451.22214-1-guinanx.sun@intel.com>",
        "Subject": "[dpdk-dev] [PATCH v2 7/8] net/i40e/base: replace AQ command for NVM\n\tupdate",
        "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 <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",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Add AQ command \"NVM update in process\"\nto replace the original AQ command \"NVM progress\".\n\nSigned-off-by: Jaroslaw Ilgiewicz <jaroslaw.ilgiewicz@intel.com>\nSigned-off-by: Guinan Sun <guinanx.sun@intel.com>\nAcked-by: Jeff Guo <jia.guo@intel.com>\n---\nV2:\n* Add Acked-by\n---\n drivers/net/i40e/base/i40e_adminq_cmd.h | 12 +++++-\n drivers/net/i40e/base/i40e_common.c     | 53 +++++++++++++++----------\n drivers/net/i40e/base/i40e_prototype.h  |  6 ++-\n 3 files changed, 46 insertions(+), 25 deletions(-)",
    "diff": "diff --git a/drivers/net/i40e/base/i40e_adminq_cmd.h b/drivers/net/i40e/base/i40e_adminq_cmd.h\nindex c7686b0d3..0766e69a8 100644\n--- a/drivers/net/i40e/base/i40e_adminq_cmd.h\n+++ b/drivers/net/i40e/base/i40e_adminq_cmd.h\n@@ -240,7 +240,7 @@ enum i40e_admin_queue_opc {\n \ti40e_aqc_opc_nvm_update\t\t\t= 0x0703,\n \ti40e_aqc_opc_nvm_config_read\t\t= 0x0704,\n \ti40e_aqc_opc_nvm_config_write\t\t= 0x0705,\n-\ti40e_aqc_opc_nvm_progress\t\t= 0x0706,\n+\ti40e_aqc_opc_nvm_update_in_process\t= 0x0706,\n \ti40e_aqc_opc_oem_post_update\t\t= 0x0720,\n \ti40e_aqc_opc_thermal_sensor\t\t= 0x0721,\n \n@@ -2400,6 +2400,16 @@ struct i40e_aqc_nvm_config_data_feature {\n \n I40E_CHECK_STRUCT_LEN(0x6, i40e_aqc_nvm_config_data_feature);\n \n+/* NVM Update in Process (direct 0x0706) */\n+struct i40e_aqc_nvm_update_in_process {\n+\tu8\tcommand;\n+#define I40E_AQ_UPDATE_FLOW_END\t\t\t0x0\n+#define I40E_AQ_UPDATE_FLOW_START\t\t0x1\n+\tu8\treserved[15];\n+};\n+\n+I40E_CHECK_CMD_LENGTH(i40e_aqc_nvm_update_in_process);\n+\n struct i40e_aqc_nvm_config_data_immediate_field {\n \t__le32 field_id;\n \t__le32 field_value;\ndiff --git a/drivers/net/i40e/base/i40e_common.c b/drivers/net/i40e/base/i40e_common.c\nindex 65317f6c6..6c6fb4de4 100644\n--- a/drivers/net/i40e/base/i40e_common.c\n+++ b/drivers/net/i40e/base/i40e_common.c\n@@ -3686,6 +3686,37 @@ enum i40e_status_code i40e_aq_write_nvm_config(struct i40e_hw *hw,\n \treturn status;\n }\n \n+/**\n+ * i40e_aq_nvm_update_in_process\n+ * @hw: pointer to the hw struct\n+ * @update_flow_state: True indicates that update flow starts, false that ends\n+ * @cmd_details: pointer to command details structure or NULL\n+ *\n+ * Indicate NVM update in process.\n+ **/\n+enum i40e_status_code\n+i40e_aq_nvm_update_in_process(struct i40e_hw *hw,\n+\t\t\t      bool update_flow_state,\n+\t\t\t      struct i40e_asq_cmd_details *cmd_details)\n+{\n+\tstruct i40e_aq_desc desc;\n+\tstruct i40e_aqc_nvm_update_in_process *cmd =\n+\t\t(struct i40e_aqc_nvm_update_in_process *)&desc.params.raw;\n+\tenum i40e_status_code status;\n+\n+\ti40e_fill_default_direct_cmd_desc(&desc,\n+\t\t\t\t\t  i40e_aqc_opc_nvm_update_in_process);\n+\n+\tcmd->command = I40E_AQ_UPDATE_FLOW_END;\n+\n+\tif (update_flow_state)\n+\t\tcmd->command |= I40E_AQ_UPDATE_FLOW_START;\n+\n+\tstatus = i40e_asq_send_command(hw, &desc, NULL, 0, cmd_details);\n+\n+\treturn status;\n+}\n+\n /**\n  * i40e_aq_oem_post_update - triggers an OEM specific flow after update\n  * @hw: pointer to the hw struct\n@@ -4257,28 +4288,6 @@ enum i40e_status_code i40e_aq_rearrange_nvm(struct i40e_hw *hw,\n \treturn status;\n }\n \n-/**\n- * i40e_aq_nvm_progress\n- * @hw: pointer to the hw struct\n- * @progress: pointer to progress returned from AQ\n- * @cmd_details: pointer to command details structure or NULL\n- *\n- * Gets progress of flash rearrangement process\n- **/\n-enum i40e_status_code i40e_aq_nvm_progress(struct i40e_hw *hw, u8 *progress,\n-\t\t\t\tstruct i40e_asq_cmd_details *cmd_details)\n-{\n-\tenum i40e_status_code status;\n-\tstruct i40e_aq_desc desc;\n-\n-\tDEBUGFUNC(\"i40e_aq_nvm_progress\");\n-\n-\ti40e_fill_default_direct_cmd_desc(&desc, i40e_aqc_opc_nvm_progress);\n-\tstatus = i40e_asq_send_command(hw, &desc, NULL, 0, cmd_details);\n-\t*progress = desc.params.raw[0];\n-\treturn status;\n-}\n-\n /**\n  * i40e_aq_get_lldp_mib\n  * @hw: pointer to the hw struct\ndiff --git a/drivers/net/i40e/base/i40e_prototype.h b/drivers/net/i40e/base/i40e_prototype.h\nindex 91fa23491..9a89f3002 100644\n--- a/drivers/net/i40e/base/i40e_prototype.h\n+++ b/drivers/net/i40e/base/i40e_prototype.h\n@@ -254,8 +254,10 @@ enum i40e_status_code i40e_aq_update_nvm(struct i40e_hw *hw, u8 module_pointer,\n enum i40e_status_code i40e_aq_rearrange_nvm(struct i40e_hw *hw,\n \t\t\t\tu8 rearrange_nvm,\n \t\t\t\tstruct i40e_asq_cmd_details *cmd_details);\n-enum i40e_status_code i40e_aq_nvm_progress(struct i40e_hw *hw, u8 *progress,\n-\t\t\t\tstruct i40e_asq_cmd_details *cmd_details);\n+enum i40e_status_code\n+i40e_aq_nvm_update_in_process(struct i40e_hw *hw,\n+\t\t\t      bool update_flow_state,\n+\t\t\t      struct i40e_asq_cmd_details *cmd_details);\n enum i40e_status_code i40e_aq_get_lldp_mib(struct i40e_hw *hw, u8 bridge_type,\n \t\t\t\tu8 mib_type, void *buff, u16 buff_size,\n \t\t\t\tu16 *local_len, u16 *remote_len,\n",
    "prefixes": [
        "v2",
        "7/8"
    ]
}