get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 93502,
    "url": "https://patches.dpdk.org/api/patches/93502/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20210527152510.1551026-4-andrew.rybchenko@oktetlabs.ru/",
    "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": "<20210527152510.1551026-4-andrew.rybchenko@oktetlabs.ru>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210527152510.1551026-4-andrew.rybchenko@oktetlabs.ru",
    "date": "2021-05-27T15:24:53",
    "name": "[03/20] common/sfc_efx/base: separate target EvQ and IRQ config",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "7bdc3f409ed3985b86ce317590d84ab394331fa2",
    "submitter": {
        "id": 2013,
        "url": "https://patches.dpdk.org/api/people/2013/?format=api",
        "name": "Andrew Rybchenko",
        "email": "Andrew.Rybchenko@oktetlabs.ru"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20210527152510.1551026-4-andrew.rybchenko@oktetlabs.ru/mbox/",
    "series": [
        {
            "id": 17144,
            "url": "https://patches.dpdk.org/api/series/17144/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=17144",
            "date": "2021-05-27T15:24:50",
            "name": "net/sfc: support flow API COUNT action",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/17144/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/93502/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/93502/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 F0A6FA0546;\n\tThu, 27 May 2021 17:26:08 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 4B6EE41113;\n\tThu, 27 May 2021 17:25:52 +0200 (CEST)",
            "from shelob.oktetlabs.ru (shelob.oktetlabs.ru [91.220.146.113])\n by mails.dpdk.org (Postfix) with ESMTP id 6683641103\n for <dev@dpdk.org>; Thu, 27 May 2021 17:25:49 +0200 (CEST)",
            "by shelob.oktetlabs.ru (Postfix, from userid 122)\n id 2C6DF7F57F; Thu, 27 May 2021 18:25:49 +0300 (MSK)",
            "from aros.oktetlabs.ru (aros.oktetlabs.ru [192.168.38.17])\n by shelob.oktetlabs.ru (Postfix) with ESMTP id DDFDA7F5FC;\n Thu, 27 May 2021 18:25:41 +0300 (MSK)"
        ],
        "X-Spam-Checker-Version": "SpamAssassin 3.4.2 (2018-09-13) on shelob.oktetlabs.ru",
        "X-Spam-Level": "",
        "X-Spam-Status": "No, score=0.8 required=5.0 tests=ALL_TRUSTED,\n DKIM_ADSP_DISCARD,\n URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.2",
        "DKIM-Filter": "OpenDKIM Filter v2.11.0 shelob.oktetlabs.ru DDFDA7F5FC",
        "Authentication-Results": "shelob.oktetlabs.ru/DDFDA7F5FC; dkim=none;\n dkim-atps=neutral",
        "From": "Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>",
        "To": "dev@dpdk.org",
        "Cc": "Andy Moreton <amoreton@xilinx.com>",
        "Date": "Thu, 27 May 2021 18:24:53 +0300",
        "Message-Id": "<20210527152510.1551026-4-andrew.rybchenko@oktetlabs.ru>",
        "X-Mailer": "git-send-email 2.30.2",
        "In-Reply-To": "<20210527152510.1551026-1-andrew.rybchenko@oktetlabs.ru>",
        "References": "<20210527152510.1551026-1-andrew.rybchenko@oktetlabs.ru>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH 03/20] common/sfc_efx/base: separate target EvQ\n and IRQ config",
        "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",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Target EvQ and IRQ number are specified in the same location\nin MCDI request. The value is treated as IRQ number if the\nevent queue is interrupting (corresponding flag is set) and\nas target event queue otherwise.\n\nHowever it is better to separate it on helper API level to\nmake it more clear.\n\nSigned-off-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>\nReviewed-by: Andy Moreton <amoreton@xilinx.com>\n---\n drivers/common/sfc_efx/base/ef10_ev.c  | 12 +++++++-----\n drivers/common/sfc_efx/base/efx_impl.h |  1 +\n drivers/common/sfc_efx/base/efx_mcdi.c |  7 ++++++-\n drivers/common/sfc_efx/base/rhead_ev.c | 12 +++++++-----\n 4 files changed, 21 insertions(+), 11 deletions(-)",
    "diff": "diff --git a/drivers/common/sfc_efx/base/ef10_ev.c b/drivers/common/sfc_efx/base/ef10_ev.c\nindex ea59beecc4..c0cbc427b9 100644\n--- a/drivers/common/sfc_efx/base/ef10_ev.c\n+++ b/drivers/common/sfc_efx/base/ef10_ev.c\n@@ -121,7 +121,8 @@ ef10_ev_qcreate(\n \t__in\t\tefx_evq_t *eep)\n {\n \tefx_nic_cfg_t *encp = &(enp->en_nic_cfg);\n-\tuint32_t irq;\n+\tuint32_t irq = 0;\n+\tuint32_t target_evq = 0;\n \tefx_rc_t rc;\n \tboolean_t low_latency;\n \n@@ -159,11 +160,12 @@ ef10_ev_qcreate(\n \t    EFX_EVQ_FLAGS_NOTIFY_INTERRUPT) {\n \t\tirq = index;\n \t} else if (index == EFX_EF10_ALWAYS_INTERRUPTING_EVQ_INDEX) {\n-\t\tirq = index;\n+\t\t/* Use the first interrupt for always interrupting EvQ */\n+\t\tirq = 0;\n \t\tflags = (flags & ~EFX_EVQ_FLAGS_NOTIFY_MASK) |\n \t\t    EFX_EVQ_FLAGS_NOTIFY_INTERRUPT;\n \t} else {\n-\t\tirq = EFX_EF10_ALWAYS_INTERRUPTING_EVQ_INDEX;\n+\t\ttarget_evq = EFX_EF10_ALWAYS_INTERRUPTING_EVQ_INDEX;\n \t}\n \n \t/*\n@@ -187,8 +189,8 @@ ef10_ev_qcreate(\n \t * decision and low_latency hint is ignored.\n \t */\n \tlow_latency = encp->enc_datapath_cap_evb ? 0 : 1;\n-\trc = efx_mcdi_init_evq(enp, index, esmp, ndescs, irq, us, flags,\n-\t    low_latency);\n+\trc = efx_mcdi_init_evq(enp, index, esmp, ndescs, irq, target_evq, us,\n+\t    flags, low_latency);\n \tif (rc != 0)\n \t\tgoto fail2;\n \ndiff --git a/drivers/common/sfc_efx/base/efx_impl.h b/drivers/common/sfc_efx/base/efx_impl.h\nindex 8b63cfb37d..4fff9e1842 100644\n--- a/drivers/common/sfc_efx/base/efx_impl.h\n+++ b/drivers/common/sfc_efx/base/efx_impl.h\n@@ -1535,6 +1535,7 @@ efx_mcdi_init_evq(\n \t__in\t\tefsys_mem_t *esmp,\n \t__in\t\tsize_t nevs,\n \t__in\t\tuint32_t irq,\n+\t__in\t\tuint32_t target_evq,\n \t__in\t\tuint32_t us,\n \t__in\t\tuint32_t flags,\n \t__in\t\tboolean_t low_latency);\ndiff --git a/drivers/common/sfc_efx/base/efx_mcdi.c b/drivers/common/sfc_efx/base/efx_mcdi.c\nindex f226ffd923..b68fc0503d 100644\n--- a/drivers/common/sfc_efx/base/efx_mcdi.c\n+++ b/drivers/common/sfc_efx/base/efx_mcdi.c\n@@ -2568,6 +2568,7 @@ efx_mcdi_init_evq(\n \t__in\t\tefsys_mem_t *esmp,\n \t__in\t\tsize_t nevs,\n \t__in\t\tuint32_t irq,\n+\t__in\t\tuint32_t target_evq,\n \t__in\t\tuint32_t us,\n \t__in\t\tuint32_t flags,\n \t__in\t\tboolean_t low_latency)\n@@ -2602,11 +2603,15 @@ efx_mcdi_init_evq(\n \n \tMCDI_IN_SET_DWORD(req, INIT_EVQ_V2_IN_SIZE, nevs);\n \tMCDI_IN_SET_DWORD(req, INIT_EVQ_V2_IN_INSTANCE, instance);\n-\tMCDI_IN_SET_DWORD(req, INIT_EVQ_V2_IN_IRQ_NUM, irq);\n \n \tinterrupting = ((flags & EFX_EVQ_FLAGS_NOTIFY_MASK) ==\n \t    EFX_EVQ_FLAGS_NOTIFY_INTERRUPT);\n \n+\tif (interrupting)\n+\t\tMCDI_IN_SET_DWORD(req, INIT_EVQ_V2_IN_IRQ_NUM, irq);\n+\telse\n+\t\tMCDI_IN_SET_DWORD(req, INIT_EVQ_V2_IN_TARGET_EVQ, target_evq);\n+\n \tif (encp->enc_init_evq_v2_supported) {\n \t\t/*\n \t\t * On Medford the low latency license is required to enable RX\ndiff --git a/drivers/common/sfc_efx/base/rhead_ev.c b/drivers/common/sfc_efx/base/rhead_ev.c\nindex 2099581fd7..533cd9e34a 100644\n--- a/drivers/common/sfc_efx/base/rhead_ev.c\n+++ b/drivers/common/sfc_efx/base/rhead_ev.c\n@@ -106,7 +106,8 @@ rhead_ev_qcreate(\n {\n \tconst efx_nic_cfg_t *encp = efx_nic_cfg_get(enp);\n \tsize_t desc_size;\n-\tuint32_t irq;\n+\tuint32_t irq = 0;\n+\tuint32_t target_evq = 0;\n \tefx_rc_t rc;\n \n \t_NOTE(ARGUNUSED(id))\t/* buftbl id managed by MC */\n@@ -142,19 +143,20 @@ rhead_ev_qcreate(\n \t    EFX_EVQ_FLAGS_NOTIFY_INTERRUPT) {\n \t\tirq = index;\n \t} else if (index == EFX_RHEAD_ALWAYS_INTERRUPTING_EVQ_INDEX) {\n-\t\tirq = index;\n+\t\t/* Use the first interrupt for always interrupting EvQ */\n+\t\tirq = 0;\n \t\tflags = (flags & ~EFX_EVQ_FLAGS_NOTIFY_MASK) |\n \t\t    EFX_EVQ_FLAGS_NOTIFY_INTERRUPT;\n \t} else {\n-\t\tirq = EFX_RHEAD_ALWAYS_INTERRUPTING_EVQ_INDEX;\n+\t\ttarget_evq = EFX_RHEAD_ALWAYS_INTERRUPTING_EVQ_INDEX;\n \t}\n \n \t/*\n \t * Interrupts may be raised for events immediately after the queue is\n \t * created. See bug58606.\n \t */\n-\trc = efx_mcdi_init_evq(enp, index, esmp, ndescs, irq, us, flags,\n-\t    B_FALSE);\n+\trc = efx_mcdi_init_evq(enp, index, esmp, ndescs, irq, target_evq, us,\n+\t    flags, B_FALSE);\n \tif (rc != 0)\n \t\tgoto fail2;\n \n",
    "prefixes": [
        "03/20"
    ]
}