get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 57795,
    "url": "https://patches.dpdk.org/api/patches/57795/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20190822055400.30119-5-ajit.khaparde@broadcom.com/",
    "project": {
        "id": 1,
        "url": "https://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": "<20190822055400.30119-5-ajit.khaparde@broadcom.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20190822055400.30119-5-ajit.khaparde@broadcom.com",
    "date": "2019-08-22T05:53:51",
    "name": "[04/13] net/bnxt: inform firmware about IF state changes",
    "commit_ref": null,
    "pull_url": null,
    "state": "changes-requested",
    "archived": true,
    "hash": "2be3a9e377d9b12369d392d214d47145398f7bcb",
    "submitter": {
        "id": 501,
        "url": "https://patches.dpdk.org/api/people/501/?format=api",
        "name": "Ajit Khaparde",
        "email": "ajit.khaparde@broadcom.com"
    },
    "delegate": {
        "id": 319,
        "url": "https://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20190822055400.30119-5-ajit.khaparde@broadcom.com/mbox/",
    "series": [
        {
            "id": 6099,
            "url": "https://patches.dpdk.org/api/series/6099/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=6099",
            "date": "2019-08-22T05:53:47",
            "name": "bnxt patchset to support device error recovery",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/6099/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/57795/comments/",
    "check": "fail",
    "checks": "https://patches.dpdk.org/api/patches/57795/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 604941BF42;\n\tThu, 22 Aug 2019 07:54:21 +0200 (CEST)",
            "from rnd-relay.smtp.broadcom.com (rnd-relay.smtp.broadcom.com\n\t[192.19.229.170]) by dpdk.org (Postfix) with ESMTP id 6A2351BF28\n\tfor <dev@dpdk.org>; Thu, 22 Aug 2019 07:54:08 +0200 (CEST)",
            "from nis-sj1-27.broadcom.com (nis-sj1-27.lvn.broadcom.net\n\t[10.75.144.136])\n\tby rnd-relay.smtp.broadcom.com (Postfix) with ESMTP id 1914D30C208;\n\tWed, 21 Aug 2019 22:54:04 -0700 (PDT)",
            "from localhost.localdomain (unknown [10.230.30.225])\n\tby nis-sj1-27.broadcom.com (Postfix) with ESMTP id 00C59AC076C;\n\tWed, 21 Aug 2019 22:54:03 -0700 (PDT)"
        ],
        "DKIM-Filter": "OpenDKIM Filter v2.10.3 rnd-relay.smtp.broadcom.com 1914D30C208",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com;\n\ts=dkimrelay; t=1566453244;\n\tbh=X3LoA9jVJHbK7PqY6tP3gwFgSuLyIiAjsQ8VpAlGDnE=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=oiJz7Sscpq/MvxzJ/n1fh0wT8+qnLCPeloSSus8R2J+JFEqBiiKQ4hd5ugBcUmBhN\n\to8mi5vPPRgUxicamAhhp7f/Zp+V47KZPx7eg/d01d4mLfBPj/mvt6CKup+I5Eb9t5m\n\ty5De+BTQVU+a59hKIiLQCYxWGSOD8SCCKHW9uOD0=",
        "From": "Ajit Khaparde <ajit.khaparde@broadcom.com>",
        "To": "dev@dpdk.org",
        "Cc": "ferruh.yigit@intel.com, Kalesh AP <kalesh-anakkur.purayil@broadcom.com>, \n\tSantoshkumar Karanappa Rastapur <santosh.rastapur@broadcom.com>,\n\tSomnath Kotur <somnath.kotur@broadcom.com>",
        "Date": "Wed, 21 Aug 2019 22:53:51 -0700",
        "Message-Id": "<20190822055400.30119-5-ajit.khaparde@broadcom.com>",
        "X-Mailer": "git-send-email 2.20.1 (Apple Git-117)",
        "In-Reply-To": "<20190822055400.30119-1-ajit.khaparde@broadcom.com>",
        "References": "<20190822055400.30119-1-ajit.khaparde@broadcom.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH 04/13] net/bnxt: inform firmware about IF state\n\tchanges",
        "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: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>\n\nUse latest firmware API to inform firmware about IF state changes.\nFirmware has the option to clean up resources during IF down and\nto require the driver to reserve resources again during IF up.\n\nSigned-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>\nReviewed-by: Santoshkumar Karanappa Rastapur <santosh.rastapur@broadcom.com>\nReviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>\nReviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>\n---\n drivers/net/bnxt/bnxt.h        |  1 +\n drivers/net/bnxt/bnxt_ethdev.c |  4 ++++\n drivers/net/bnxt/bnxt_hwrm.c   | 35 ++++++++++++++++++++++++++++++++++\n drivers/net/bnxt/bnxt_hwrm.h   |  1 +\n 4 files changed, 41 insertions(+)",
    "diff": "diff --git a/drivers/net/bnxt/bnxt.h b/drivers/net/bnxt/bnxt.h\nindex 8797b032e..394a2a941 100644\n--- a/drivers/net/bnxt/bnxt.h\n+++ b/drivers/net/bnxt/bnxt.h\n@@ -370,6 +370,7 @@ struct bnxt {\n #define BNXT_FLAG_STINGRAY\t(1 << 14)\n #define BNXT_FLAG_FW_RESET\t(1 << 15)\n #define BNXT_FLAG_FATAL_ERROR\t(1 << 16)\n+#define BNXT_FLAG_FW_CAP_IF_CHANGE\t(1 << 17)\n #define BNXT_FLAG_EXT_STATS_SUPPORTED\t(1 << 29)\n #define BNXT_FLAG_NEW_RM\t(1 << 30)\n #define BNXT_FLAG_INIT_DONE\t(1U << 31)\ndiff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c\nindex 1aef227f2..f7b2ef179 100644\n--- a/drivers/net/bnxt/bnxt_ethdev.c\n+++ b/drivers/net/bnxt/bnxt_ethdev.c\n@@ -803,6 +803,8 @@ static int bnxt_dev_start_op(struct rte_eth_dev *eth_dev)\n \t\t\tbp->rx_cp_nr_rings, RTE_ETHDEV_QUEUE_STAT_CNTRS);\n \t}\n \n+\tbnxt_hwrm_if_change(bp, 1);\n+\n \trc = bnxt_init_chip(bp);\n \tif (rc)\n \t\tgoto error;\n@@ -829,6 +831,7 @@ static int bnxt_dev_start_op(struct rte_eth_dev *eth_dev)\n \treturn 0;\n \n error:\n+\tbnxt_hwrm_if_change(bp, 0);\n \tbnxt_shutdown_nic(bp);\n \tbnxt_free_tx_mbufs(bp);\n \tbnxt_free_rx_mbufs(bp);\n@@ -895,6 +898,7 @@ static void bnxt_dev_stop_op(struct rte_eth_dev *eth_dev)\n \tbnxt_free_tx_mbufs(bp);\n \tbnxt_free_rx_mbufs(bp);\n \tbnxt_shutdown_nic(bp);\n+\tbnxt_hwrm_if_change(bp, 0);\n \tbp->dev_stopped = 1;\n }\n \ndiff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c\nindex b27dbe87e..17c7b5e9e 100644\n--- a/drivers/net/bnxt/bnxt_hwrm.c\n+++ b/drivers/net/bnxt/bnxt_hwrm.c\n@@ -716,6 +716,11 @@ int bnxt_hwrm_func_driver_register(struct bnxt *bp)\n \trc = bnxt_hwrm_send_message(bp, &req, sizeof(req), BNXT_USE_CHIMP_MB);\n \n \tHWRM_CHECK_RESULT();\n+\n+\tflags = rte_le_to_cpu_32(resp->flags);\n+\tif (flags & HWRM_FUNC_DRV_RGTR_OUTPUT_FLAGS_IF_CHANGE_SUPPORTED)\n+\t\tbp->flags |= BNXT_FLAG_FW_CAP_IF_CHANGE;\n+\n \tHWRM_UNLOCK();\n \n \tbp->flags |= BNXT_FLAG_REGISTERED;\n@@ -4649,3 +4654,33 @@ int bnxt_hwrm_set_mac(struct bnxt *bp)\n \n \treturn rc;\n }\n+\n+int bnxt_hwrm_if_change(struct bnxt *bp, bool state)\n+{\n+\tstruct hwrm_func_drv_if_change_output *resp = bp->hwrm_cmd_resp_addr;\n+\tstruct hwrm_func_drv_if_change_input req = {0};\n+\tint rc;\n+\n+\tif (!(bp->flags & BNXT_FLAG_FW_CAP_IF_CHANGE))\n+\t\treturn 0;\n+\n+\t/* Do not issue FUNC_DRV_IF_CHANGE during reset recovery.\n+\t * If we issue FUNC_DRV_IF_CHANGE with flags down before\n+\t * FUNC_DRV_UNRGTR, FW resets before FUNC_DRV_UNRGTR\n+\t */\n+\tif (!state && (bp->flags & BNXT_FLAG_FW_RESET))\n+\t\treturn 0;\n+\n+\tHWRM_PREP(req, FUNC_DRV_IF_CHANGE, BNXT_USE_CHIMP_MB);\n+\n+\tif (state)\n+\t\treq.flags =\n+\t\trte_cpu_to_le_32(HWRM_FUNC_DRV_IF_CHANGE_INPUT_FLAGS_UP);\n+\n+\trc = bnxt_hwrm_send_message(bp, &req, sizeof(req), BNXT_USE_CHIMP_MB);\n+\n+\tHWRM_CHECK_RESULT();\n+\tHWRM_UNLOCK();\n+\n+\treturn rc;\n+}\ndiff --git a/drivers/net/bnxt/bnxt_hwrm.h b/drivers/net/bnxt/bnxt_hwrm.h\nindex a03620532..2f57e950b 100644\n--- a/drivers/net/bnxt/bnxt_hwrm.h\n+++ b/drivers/net/bnxt/bnxt_hwrm.h\n@@ -201,4 +201,5 @@ int bnxt_hwrm_tunnel_redirect_query(struct bnxt *bp, uint32_t *type);\n int bnxt_hwrm_tunnel_redirect_info(struct bnxt *bp, uint8_t tun_type,\n \t\t\t\t   uint16_t *dst_fid);\n int bnxt_hwrm_set_mac(struct bnxt *bp);\n+int bnxt_hwrm_if_change(struct bnxt *bp, bool state);\n #endif\n",
    "prefixes": [
        "04/13"
    ]
}