get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 22808,
    "url": "http://patches.dpdk.org/api/patches/22808/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1490819822-27267-44-git-send-email-rasesh.mody@cavium.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": "<1490819822-27267-44-git-send-email-rasesh.mody@cavium.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1490819822-27267-44-git-send-email-rasesh.mody@cavium.com",
    "date": "2017-03-29T20:36:43",
    "name": "[dpdk-dev,v5,43/62] net/qede/base: update bulletin board during VF init",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "1c3593c71ee55b624a6917cedd93b0cd36fd8d63",
    "submitter": {
        "id": 569,
        "url": "http://patches.dpdk.org/api/people/569/?format=api",
        "name": "Mody, Rasesh",
        "email": "rasesh.mody@cavium.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1490819822-27267-44-git-send-email-rasesh.mody@cavium.com/mbox/",
    "series": [],
    "comments": "http://patches.dpdk.org/api/patches/22808/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/22808/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 B80EEFBC1;\n\tThu, 30 Mar 2017 00:22:34 +0200 (CEST)",
            "from mx0b-0016ce01.pphosted.com (mx0b-0016ce01.pphosted.com\n\t[67.231.156.153]) by dpdk.org (Postfix) with ESMTP id 8BA5C374C\n\tfor <dev@dpdk.org>; Wed, 29 Mar 2017 22:38:31 +0200 (CEST)",
            "from pps.filterd (m0085408.ppops.net [127.0.0.1])\n\tby mx0b-0016ce01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id\n\tv2TKb6mK021883; Wed, 29 Mar 2017 13:38:30 -0700",
            "from avcashub1.qlogic.com ([198.186.0.117])\n\tby mx0b-0016ce01.pphosted.com with ESMTP id 29emw0duqf-1\n\t(version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT);\n\tWed, 29 Mar 2017 13:38:29 -0700",
            "from avluser05.qlc.com (10.1.113.115) by qlc.com (10.1.4.192) with\n\tMicrosoft SMTP Server id 14.3.235.1;\n\tWed, 29 Mar 2017 13:38:28 -0700",
            "(from rmody@localhost)\tby avluser05.qlc.com (8.14.4/8.14.4/Submit)\n\tid v2TKcTxe027498;\tWed, 29 Mar 2017 13:38:29 -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:43 -0700",
        "Message-ID": "<1490819822-27267-44-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=2 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-1703290174",
        "Subject": "[dpdk-dev] [PATCH v5 43/62] net/qede/base: update bulletin board\n\tduring VF init",
        "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": "Updated bulletin board with link state during VF initialization.\n\nSigned-off-by: Rasesh Mody <rasesh.mody@cavium.com>\n---\n drivers/net/qede/base/ecore_sriov.c |   88 ++++++++++++++++++++---------------\n 1 file changed, 51 insertions(+), 37 deletions(-)",
    "diff": "diff --git a/drivers/net/qede/base/ecore_sriov.c b/drivers/net/qede/base/ecore_sriov.c\nindex aab9925..703c1e8 100644\n--- a/drivers/net/qede/base/ecore_sriov.c\n+++ b/drivers/net/qede/base/ecore_sriov.c\n@@ -954,11 +954,51 @@ static void ecore_iov_free_vf_igu_sbs(struct ecore_hwfn *p_hwfn,\n \tvf->num_sbs = 0;\n }\n \n+void ecore_iov_set_link(struct ecore_hwfn *p_hwfn,\n+\t\t\tu16 vfid,\n+\t\t\tstruct ecore_mcp_link_params *params,\n+\t\t\tstruct ecore_mcp_link_state *link,\n+\t\t\tstruct ecore_mcp_link_capabilities *p_caps)\n+{\n+\tstruct ecore_vf_info *p_vf = ecore_iov_get_vf_info(p_hwfn, vfid, false);\n+\tstruct ecore_bulletin_content *p_bulletin;\n+\n+\tif (!p_vf)\n+\t\treturn;\n+\n+\tp_bulletin = p_vf->bulletin.p_virt;\n+\tp_bulletin->req_autoneg = params->speed.autoneg;\n+\tp_bulletin->req_adv_speed = params->speed.advertised_speeds;\n+\tp_bulletin->req_forced_speed = params->speed.forced_speed;\n+\tp_bulletin->req_autoneg_pause = params->pause.autoneg;\n+\tp_bulletin->req_forced_rx = params->pause.forced_rx;\n+\tp_bulletin->req_forced_tx = params->pause.forced_tx;\n+\tp_bulletin->req_loopback = params->loopback_mode;\n+\n+\tp_bulletin->link_up = link->link_up;\n+\tp_bulletin->speed = link->speed;\n+\tp_bulletin->full_duplex = link->full_duplex;\n+\tp_bulletin->autoneg = link->an;\n+\tp_bulletin->autoneg_complete = link->an_complete;\n+\tp_bulletin->parallel_detection = link->parallel_detection;\n+\tp_bulletin->pfc_enabled = link->pfc_enabled;\n+\tp_bulletin->partner_adv_speed = link->partner_adv_speed;\n+\tp_bulletin->partner_tx_flow_ctrl_en = link->partner_tx_flow_ctrl_en;\n+\tp_bulletin->partner_rx_flow_ctrl_en = link->partner_rx_flow_ctrl_en;\n+\tp_bulletin->partner_adv_pause = link->partner_adv_pause;\n+\tp_bulletin->sfp_tx_fault = link->sfp_tx_fault;\n+\n+\tp_bulletin->capability_speed = p_caps->speed_capabilities;\n+}\n+\n enum _ecore_status_t\n ecore_iov_init_hw_for_vf(struct ecore_hwfn *p_hwfn,\n \t\t\t struct ecore_ptt *p_ptt,\n \t\t\t struct ecore_iov_vf_init_params *p_params)\n {\n+\tstruct ecore_mcp_link_capabilities link_caps;\n+\tstruct ecore_mcp_link_params link_params;\n+\tstruct ecore_mcp_link_state link_state;\n \tu8 num_of_vf_available_chains  = 0;\n \tstruct ecore_vf_info *vf = OSAL_NULL;\n \tu16 qid, num_irqs;\n@@ -1045,6 +1085,17 @@ ecore_iov_init_hw_for_vf(struct ecore_hwfn *p_hwfn,\n \t\t\t   p_queue->fw_cid);\n \t}\n \n+\t/* Update the link configuration in bulletin.\n+\t */\n+\tOSAL_MEMCPY(&link_params, ecore_mcp_get_link_params(p_hwfn),\n+\t\t    sizeof(link_params));\n+\tOSAL_MEMCPY(&link_state, ecore_mcp_get_link_state(p_hwfn),\n+\t\t    sizeof(link_state));\n+\tOSAL_MEMCPY(&link_caps, ecore_mcp_get_link_capabilities(p_hwfn),\n+\t\t    sizeof(link_caps));\n+\tecore_iov_set_link(p_hwfn, p_params->rel_vf_id,\n+\t\t\t   &link_params, &link_state, &link_caps);\n+\n \trc = ecore_iov_enable_vf_access(p_hwfn, p_ptt, vf);\n \n \tif (rc == ECORE_SUCCESS) {\n@@ -1059,43 +1110,6 @@ ecore_iov_init_hw_for_vf(struct ecore_hwfn *p_hwfn,\n \treturn rc;\n }\n \n-void ecore_iov_set_link(struct ecore_hwfn *p_hwfn,\n-\t\t\tu16 vfid,\n-\t\t\tstruct ecore_mcp_link_params *params,\n-\t\t\tstruct ecore_mcp_link_state *link,\n-\t\t\tstruct ecore_mcp_link_capabilities *p_caps)\n-{\n-\tstruct ecore_vf_info *p_vf = ecore_iov_get_vf_info(p_hwfn, vfid, false);\n-\tstruct ecore_bulletin_content *p_bulletin;\n-\n-\tif (!p_vf)\n-\t\treturn;\n-\n-\tp_bulletin = p_vf->bulletin.p_virt;\n-\tp_bulletin->req_autoneg = params->speed.autoneg;\n-\tp_bulletin->req_adv_speed = params->speed.advertised_speeds;\n-\tp_bulletin->req_forced_speed = params->speed.forced_speed;\n-\tp_bulletin->req_autoneg_pause = params->pause.autoneg;\n-\tp_bulletin->req_forced_rx = params->pause.forced_rx;\n-\tp_bulletin->req_forced_tx = params->pause.forced_tx;\n-\tp_bulletin->req_loopback = params->loopback_mode;\n-\n-\tp_bulletin->link_up = link->link_up;\n-\tp_bulletin->speed = link->speed;\n-\tp_bulletin->full_duplex = link->full_duplex;\n-\tp_bulletin->autoneg = link->an;\n-\tp_bulletin->autoneg_complete = link->an_complete;\n-\tp_bulletin->parallel_detection = link->parallel_detection;\n-\tp_bulletin->pfc_enabled = link->pfc_enabled;\n-\tp_bulletin->partner_adv_speed = link->partner_adv_speed;\n-\tp_bulletin->partner_tx_flow_ctrl_en = link->partner_tx_flow_ctrl_en;\n-\tp_bulletin->partner_rx_flow_ctrl_en = link->partner_rx_flow_ctrl_en;\n-\tp_bulletin->partner_adv_pause = link->partner_adv_pause;\n-\tp_bulletin->sfp_tx_fault = link->sfp_tx_fault;\n-\n-\tp_bulletin->capability_speed = p_caps->speed_capabilities;\n-}\n-\n enum _ecore_status_t ecore_iov_release_hw_for_vf(struct ecore_hwfn *p_hwfn,\n \t\t\t\t\t\t struct ecore_ptt *p_ptt,\n \t\t\t\t\t\t u16 rel_vf_id)\n",
    "prefixes": [
        "dpdk-dev",
        "v5",
        "43/62"
    ]
}