get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 22769,
    "url": "https://patches.dpdk.org/api/patches/22769/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/1490819822-27267-5-git-send-email-rasesh.mody@cavium.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": "<1490819822-27267-5-git-send-email-rasesh.mody@cavium.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1490819822-27267-5-git-send-email-rasesh.mody@cavium.com",
    "date": "2017-03-29T20:36:04",
    "name": "[dpdk-dev,v5,04/62] net/qede/base: print various indication on Tx-timeouts",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "3c21aec41692ea37a7ef5a6f4144f38678db037a",
    "submitter": {
        "id": 569,
        "url": "https://patches.dpdk.org/api/people/569/?format=api",
        "name": "Mody, Rasesh",
        "email": "rasesh.mody@cavium.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/1490819822-27267-5-git-send-email-rasesh.mody@cavium.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/22769/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/22769/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 [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id CB81AFB09;\n\tThu, 30 Mar 2017 00:07:20 +0200 (CEST)",
            "from mx0b-0016ce01.pphosted.com (mx0a-0016ce01.pphosted.com\n\t[67.231.148.157]) by dpdk.org (Postfix) with ESMTP id 5804437B4\n\tfor <dev@dpdk.org>; Wed, 29 Mar 2017 22:37:56 +0200 (CEST)",
            "from pps.filterd (m0095336.ppops.net [127.0.0.1])\n\tby mx0a-0016ce01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id\n\tv2TKV054002101; Wed, 29 Mar 2017 13:37:54 -0700",
            "from avcashub1.qlogic.com ([198.186.0.116])\n\tby mx0a-0016ce01.pphosted.com with ESMTP id 29en8ywy9a-1\n\t(version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT);\n\tWed, 29 Mar 2017 13:37:54 -0700",
            "from avluser05.qlc.com (10.1.113.115) by qlc.com (10.1.4.191) with\n\tMicrosoft SMTP Server id 14.3.235.1;\n\tWed, 29 Mar 2017 13:37:54 -0700",
            "(from rmody@localhost)\tby avluser05.qlc.com (8.14.4/8.14.4/Submit)\n\tid v2TKbrDV027426;\tWed, 29 Mar 2017 13:37:53 -0700"
        ],
        "X-Authentication-Warning": "avluser05.qlc.com: rmody set sender to\n\trasesh.mody@cavium.com using -f",
        "From": "Rasesh Mody <rasesh.mody@cavium.com>",
        "To": "<ferruh.yigit@intel.com>, <dev@dpdk.org>",
        "CC": "Rasesh Mody <rasesh.mody@cavium.com>, <Dept-EngDPDKDev@cavium.com>",
        "Date": "Wed, 29 Mar 2017 13:36:04 -0700",
        "Message-ID": "<1490819822-27267-5-git-send-email-rasesh.mody@cavium.com>",
        "X-Mailer": "git-send-email 1.7.10.3",
        "In-Reply-To": "<1490683952-24919-1-git-send-email-rasesh.mody@cavium.com>",
        "References": "<1490683952-24919-1-git-send-email-rasesh.mody@cavium.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "disclaimer": "bypass",
        "X-Proofpoint-Virus-Version": "vendor=nai engine=5800 definitions=8482\n\tsignatures=668451",
        "X-Proofpoint-Spam-Details": "rule=notspam policy=default score=0\n\tpriorityscore=1501 malwarescore=0\n\tsuspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015\n\tlowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam\n\tadjust=0\n\treason=mlx scancount=1 engine=8.0.1-1702020001\n\tdefinitions=main-1703290173",
        "Subject": "[dpdk-dev] [PATCH v5 04/62] net/qede/base: print various indication\n\ton Tx-timeouts",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Print various indication on Tx-timeouts.\n\nSigned-off-by: Rasesh Mody <rasesh.mody@cavium.com>\n---\n drivers/net/qede/base/ecore_int.c     |   27 +++++++++++++++++++++++++++\n drivers/net/qede/base/ecore_int_api.h |   21 +++++++++++++++++++++\n drivers/net/qede/base/reg_addr.h      |    3 +++\n drivers/net/qede/qede_main.c          |   23 +++++++++++++++++++++++\n 4 files changed, 74 insertions(+)",
    "diff": "diff --git a/drivers/net/qede/base/ecore_int.c b/drivers/net/qede/base/ecore_int.c\nindex b6b8e2d..e5a4359 100644\n--- a/drivers/net/qede/base/ecore_int.c\n+++ b/drivers/net/qede/base/ecore_int.c\n@@ -2255,3 +2255,30 @@ enum _ecore_status_t ecore_int_set_timer_res(struct ecore_hwfn *p_hwfn,\n \n \treturn rc;\n }\n+\n+enum _ecore_status_t ecore_int_get_sb_dbg(struct ecore_hwfn *p_hwfn,\n+\t\t\t\t\t  struct ecore_ptt *p_ptt,\n+\t\t\t\t\t  struct ecore_sb_info *p_sb,\n+\t\t\t\t\t  struct ecore_sb_info_dbg *p_info)\n+{\n+\tu16 sbid = p_sb->igu_sb_id;\n+\tint i;\n+\n+\tif (IS_VF(p_hwfn->p_dev))\n+\t\treturn ECORE_INVAL;\n+\n+\tif (sbid > NUM_OF_SBS(p_hwfn->p_dev))\n+\t\treturn ECORE_INVAL;\n+\n+\tp_info->igu_prod = ecore_rd(p_hwfn, p_ptt,\n+\t\t\t\t    IGU_REG_PRODUCER_MEMORY + sbid * 4);\n+\tp_info->igu_cons = ecore_rd(p_hwfn, p_ptt,\n+\t\t\t\t    IGU_REG_CONSUMER_MEM + sbid * 4);\n+\n+\tfor (i = 0; i < PIS_PER_SB; i++)\n+\t\tp_info->pi[i] = (u16)ecore_rd(p_hwfn, p_ptt,\n+\t\t\t\t\t      CAU_REG_PI_MEMORY +\n+\t\t\t\t\t      sbid * 4 * PIS_PER_SB +  i * 4);\n+\n+\treturn ECORE_SUCCESS;\n+}\ndiff --git a/drivers/net/qede/base/ecore_int_api.h b/drivers/net/qede/base/ecore_int_api.h\nindex a0d6a43..fdfcba8 100644\n--- a/drivers/net/qede/base/ecore_int_api.h\n+++ b/drivers/net/qede/base/ecore_int_api.h\n@@ -41,6 +41,12 @@ struct ecore_sb_info {\n \tstruct ecore_dev *p_dev;\n };\n \n+struct ecore_sb_info_dbg {\n+\tu32 igu_prod;\n+\tu32 igu_cons;\n+\tu16 pi[PIS_PER_SB];\n+};\n+\n struct ecore_sb_cnt_info {\n \tint sb_cnt;\n \tint sb_iov_cnt;\n@@ -303,4 +309,19 @@ void ecore_int_disable_post_isr_release(struct ecore_dev *p_dev);\n  */\n void ecore_int_attn_clr_enable(struct ecore_dev *p_dev, bool clr_enable);\n \n+/**\n+ * @brief Read debug information regarding a given SB.\n+ *\n+ * @param p_hwfn\n+ * @param p_ptt\n+ * @param p_sb - point to Status block for which we want to get info.\n+ * @param p_info - pointer to struct to fill with information regarding SB.\n+ *\n+ * @return ECORE_SUCCESS if pointer is filled; failure otherwise.\n+ */\n+enum _ecore_status_t ecore_int_get_sb_dbg(struct ecore_hwfn *p_hwfn,\n+\t\t\t\t\t  struct ecore_ptt *p_ptt,\n+\t\t\t\t\t  struct ecore_sb_info *p_sb,\n+\t\t\t\t\t  struct ecore_sb_info_dbg *p_info);\n+\n #endif\ndiff --git a/drivers/net/qede/base/reg_addr.h b/drivers/net/qede/base/reg_addr.h\nindex 21cbdbd..3cc7fd4 100644\n--- a/drivers/net/qede/base/reg_addr.h\n+++ b/drivers/net/qede/base/reg_addr.h\n@@ -1144,3 +1144,6 @@\n \n /* 8.18.7.0 FW */\n #define BRB_REG_INT_MASK_10 0x3401b8UL\n+\n+#define IGU_REG_PRODUCER_MEMORY 0x182000UL\n+#define IGU_REG_CONSUMER_MEM 0x183000UL\ndiff --git a/drivers/net/qede/qede_main.c b/drivers/net/qede/qede_main.c\nindex f0033a1..a604a5b 100644\n--- a/drivers/net/qede/qede_main.c\n+++ b/drivers/net/qede/qede_main.c\n@@ -687,6 +687,29 @@ static int qed_send_drv_state(struct ecore_dev *edev, bool active)\n \treturn status;\n }\n \n+static int qed_get_sb_info(struct ecore_dev *edev, struct ecore_sb_info *sb,\n+\t\t\t   u16 qid, struct ecore_sb_info_dbg *sb_dbg)\n+{\n+\tstruct ecore_hwfn *hwfn = &edev->hwfns[qid % edev->num_hwfns];\n+\tstruct ecore_ptt *ptt;\n+\tint rc;\n+\n+\tif (IS_VF(edev))\n+\t\treturn -EINVAL;\n+\n+\tptt = ecore_ptt_acquire(hwfn);\n+\tif (!ptt) {\n+\t\tDP_NOTICE(hwfn, true, \"Can't acquire PTT\\n\");\n+\t\treturn -EAGAIN;\n+\t}\n+\n+\tmemset(sb_dbg, 0, sizeof(*sb_dbg));\n+\trc = ecore_int_get_sb_dbg(hwfn, ptt, sb, sb_dbg);\n+\n+\tecore_ptt_release(hwfn, ptt);\n+\treturn rc;\n+}\n+\n const struct qed_common_ops qed_common_ops_pass = {\n \tINIT_STRUCT_FIELD(probe, &qed_probe),\n \tINIT_STRUCT_FIELD(update_pf_params, &qed_update_pf_params),\n",
    "prefixes": [
        "dpdk-dev",
        "v5",
        "04/62"
    ]
}