get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 94484,
    "url": "http://patches.dpdk.org/api/patches/94484/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20210618134032.1922012-4-andrew.rybchenko@oktetlabs.ru/",
    "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": "<20210618134032.1922012-4-andrew.rybchenko@oktetlabs.ru>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210618134032.1922012-4-andrew.rybchenko@oktetlabs.ru",
    "date": "2021-06-18T13:40:15",
    "name": "[v3,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": "http://patches.dpdk.org/api/people/2013/?format=api",
        "name": "Andrew Rybchenko",
        "email": "Andrew.Rybchenko@oktetlabs.ru"
    },
    "delegate": {
        "id": 24651,
        "url": "http://patches.dpdk.org/api/users/24651/?format=api",
        "username": "dmarchand",
        "first_name": "David",
        "last_name": "Marchand",
        "email": "david.marchand@redhat.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20210618134032.1922012-4-andrew.rybchenko@oktetlabs.ru/mbox/",
    "series": [
        {
            "id": 17397,
            "url": "http://patches.dpdk.org/api/series/17397/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=17397",
            "date": "2021-06-18T13:40:12",
            "name": "net/sfc: support flow API COUNT action",
            "version": 3,
            "mbox": "http://patches.dpdk.org/series/17397/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/94484/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/94484/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 B8707A0C46;\n\tFri, 18 Jun 2021 15:41:03 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id D639B41109;\n\tFri, 18 Jun 2021 15:40:46 +0200 (CEST)",
            "from shelob.oktetlabs.ru (shelob.oktetlabs.ru [91.220.146.113])\n by mails.dpdk.org (Postfix) with ESMTP id 535C6410F8\n for <dev@dpdk.org>; Fri, 18 Jun 2021 15:40:45 +0200 (CEST)",
            "by shelob.oktetlabs.ru (Postfix, from userid 122)\n id 1FB5A7F6A7; Fri, 18 Jun 2021 16:40:45 +0300 (MSK)",
            "from aros.oktetlabs.ru (aros.oktetlabs.ru [192.168.38.17])\n by shelob.oktetlabs.ru (Postfix) with ESMTP id 600537F691;\n Fri, 18 Jun 2021 16:40:34 +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 600537F691",
        "Authentication-Results": "shelob.oktetlabs.ru/600537F691; dkim=none;\n dkim-atps=neutral",
        "From": "Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>",
        "To": "dev@dpdk.org",
        "Cc": "David Marchand <david.marchand@redhat.com>,\n Andy Moreton <amoreton@xilinx.com>",
        "Date": "Fri, 18 Jun 2021 16:40:15 +0300",
        "Message-Id": "<20210618134032.1922012-4-andrew.rybchenko@oktetlabs.ru>",
        "X-Mailer": "git-send-email 2.30.2",
        "In-Reply-To": "<20210618134032.1922012-1-andrew.rybchenko@oktetlabs.ru>",
        "References": "<20210527152510.1551026-1-andrew.rybchenko@oktetlabs.ru>\n <20210618134032.1922012-1-andrew.rybchenko@oktetlabs.ru>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v3 03/20] common/sfc_efx/base: separate target\n EvQ 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 4a513171a1..c1f98def40 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": [
        "v3",
        "03/20"
    ]
}