get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 7709,
    "url": "https://patches.dpdk.org/api/patches/7709/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/1445000741-12799-3-git-send-email-wenzhuo.lu@intel.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": "<1445000741-12799-3-git-send-email-wenzhuo.lu@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1445000741-12799-3-git-send-email-wenzhuo.lu@intel.com",
    "date": "2015-10-16T13:05:39",
    "name": "[dpdk-dev,v2,2/4] ixgbe: VF RSS config on x550",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "7167204e15ba8e225cbd6eb8ccf9af9650ec7556",
    "submitter": {
        "id": 258,
        "url": "https://patches.dpdk.org/api/people/258/?format=api",
        "name": "Wenzhuo Lu",
        "email": "wenzhuo.lu@intel.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/1445000741-12799-3-git-send-email-wenzhuo.lu@intel.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/7709/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/7709/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 721C38E95;\n\tFri, 16 Oct 2015 15:06:09 +0200 (CEST)",
            "from mga01.intel.com (mga01.intel.com [192.55.52.88])\n\tby dpdk.org (Postfix) with ESMTP id A390F8E94\n\tfor <dev@dpdk.org>; Fri, 16 Oct 2015 15:06:07 +0200 (CEST)",
            "from orsmga001.jf.intel.com ([10.7.209.18])\n\tby fmsmga101.fm.intel.com with ESMTP; 16 Oct 2015 06:05:53 -0700",
            "from shvmail01.sh.intel.com ([10.239.29.42])\n\tby orsmga001.jf.intel.com with ESMTP; 16 Oct 2015 06:05:52 -0700",
            "from shecgisg004.sh.intel.com (shecgisg004.sh.intel.com\n\t[10.239.29.89])\n\tby shvmail01.sh.intel.com with ESMTP id t9GD5ouc026112;\n\tFri, 16 Oct 2015 21:05:50 +0800",
            "from shecgisg004.sh.intel.com (localhost [127.0.0.1])\n\tby shecgisg004.sh.intel.com (8.13.6/8.13.6/SuSE Linux 0.8) with ESMTP\n\tid t9GD5llj012848; Fri, 16 Oct 2015 21:05:49 +0800",
            "(from wenzhuol@localhost)\n\tby shecgisg004.sh.intel.com (8.13.6/8.13.6/Submit) id t9GD5lXe012844; \n\tFri, 16 Oct 2015 21:05:47 +0800"
        ],
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.17,689,1437462000\"; d=\"scan'208\";a=\"794824922\"",
        "From": "Wenzhuo Lu <wenzhuo.lu@intel.com>",
        "To": "dev@dpdk.org",
        "Date": "Fri, 16 Oct 2015 21:05:39 +0800",
        "Message-Id": "<1445000741-12799-3-git-send-email-wenzhuo.lu@intel.com>",
        "X-Mailer": "git-send-email 1.7.4.1",
        "In-Reply-To": "<1445000741-12799-1-git-send-email-wenzhuo.lu@intel.com>",
        "References": "<1443426751-4906-1-git-send-email-wenzhuo.lu@intel.com>\n\t<1445000741-12799-1-git-send-email-wenzhuo.lu@intel.com>",
        "Subject": "[dpdk-dev] [PATCH v2 2/4] ixgbe: VF RSS config on x550",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "patches and discussions about DPDK <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": "On x550, there're separate registers provided for VF RSS while on the other\n10G NICs, for example, 82599, VF and PF share the same registers.\nThis patch lets x550 use the VF specific registers when doing RSS configuration\non VF. The behavior of other 10G NICs doesn't change.\n\nSigned-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>\n---\n drivers/net/ixgbe/ixgbe_ethdev.c | 22 ++++++++++++++++++++++\n drivers/net/ixgbe/ixgbe_ethdev.h |  4 ++++\n drivers/net/ixgbe/ixgbe_rxtx.c   | 15 +++++++++++----\n 3 files changed, 37 insertions(+), 4 deletions(-)",
    "diff": "diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c\nindex 480891d..e2fbcfc 100644\n--- a/drivers/net/ixgbe/ixgbe_ethdev.c\n+++ b/drivers/net/ixgbe/ixgbe_ethdev.c\n@@ -5512,6 +5512,28 @@ ixgbe_reta_reg_get(enum ixgbe_mac_type mac_type, uint16_t reta_idx) {\n \t}\n }\n \n+uint32_t\n+ixgbe_mrqc_reg_get(enum ixgbe_mac_type mac_type) {\n+\tswitch (mac_type) {\n+\tcase ixgbe_mac_X550_vf:\n+\tcase ixgbe_mac_X550EM_x_vf:\n+\t\treturn IXGBE_VFMRQC;\n+\tdefault:\n+\t\treturn IXGBE_MRQC;\n+\t}\n+}\n+\n+uint32_t\n+ixgbe_rssrk_reg_get(enum ixgbe_mac_type mac_type, uint8_t i) {\n+\tswitch (mac_type) {\n+\tcase ixgbe_mac_X550_vf:\n+\tcase ixgbe_mac_X550EM_x_vf:\n+\t\treturn IXGBE_VFRSSRK(i);\n+\tdefault:\n+\t\treturn IXGBE_RSSRK(i);\n+\t}\n+}\n+\n static struct rte_driver rte_ixgbe_driver = {\n \t.type = PMD_PDEV,\n \t.init = rte_ixgbe_pmd_init,\ndiff --git a/drivers/net/ixgbe/ixgbe_ethdev.h b/drivers/net/ixgbe/ixgbe_ethdev.h\nindex 0c669cd..441a17f 100644\n--- a/drivers/net/ixgbe/ixgbe_ethdev.h\n+++ b/drivers/net/ixgbe/ixgbe_ethdev.h\n@@ -381,6 +381,10 @@ uint16_t ixgbe_reta_size_get(enum ixgbe_mac_type mac_type);\n \n uint32_t ixgbe_reta_reg_get(enum ixgbe_mac_type mac_type, uint16_t reta_idx);\n \n+uint32_t ixgbe_mrqc_reg_get(enum ixgbe_mac_type mac_type);\n+\n+uint32_t ixgbe_rssrk_reg_get(enum ixgbe_mac_type mac_type, uint8_t i);\n+\n /*\n  * Flow director function prototypes\n  */\ndiff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/drivers/net/ixgbe/ixgbe_rxtx.c\nindex 494a6be..0b8ca18 100644\n--- a/drivers/net/ixgbe/ixgbe_rxtx.c\n+++ b/drivers/net/ixgbe/ixgbe_rxtx.c\n@@ -2647,11 +2647,13 @@ ixgbe_rss_disable(struct rte_eth_dev *dev)\n {\n \tstruct ixgbe_hw *hw;\n \tuint32_t mrqc;\n+\tuint32_t mrqc_reg;\n \n \thw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);\n-\tmrqc = IXGBE_READ_REG(hw, IXGBE_MRQC);\n+\tmrqc_reg = ixgbe_mrqc_reg_get(hw->mac.type);\n+\tmrqc = IXGBE_READ_REG(hw, mrqc_reg);\n \tmrqc &= ~IXGBE_MRQC_RSSEN;\n-\tIXGBE_WRITE_REG(hw, IXGBE_MRQC, mrqc);\n+\tIXGBE_WRITE_REG(hw, mrqc_reg, mrqc);\n }\n \n static void\n@@ -2662,6 +2664,11 @@ ixgbe_hw_rss_hash_set(struct ixgbe_hw *hw, struct rte_eth_rss_conf *rss_conf)\n \tuint32_t rss_key;\n \tuint64_t rss_hf;\n \tuint16_t i;\n+\tuint32_t mrqc_reg;\n+\tuint32_t rssrk_reg;\n+\n+\tmrqc_reg = ixgbe_mrqc_reg_get(hw->mac.type);\n+\trssrk_reg = ixgbe_rssrk_reg_get(hw->mac.type, 0);\n \n \thash_key = rss_conf->rss_key;\n \tif (hash_key != NULL) {\n@@ -2671,7 +2678,7 @@ ixgbe_hw_rss_hash_set(struct ixgbe_hw *hw, struct rte_eth_rss_conf *rss_conf)\n \t\t\trss_key |= hash_key[(i * 4) + 1] << 8;\n \t\t\trss_key |= hash_key[(i * 4) + 2] << 16;\n \t\t\trss_key |= hash_key[(i * 4) + 3] << 24;\n-\t\t\tIXGBE_WRITE_REG_ARRAY(hw, IXGBE_RSSRK(0), i, rss_key);\n+\t\t\tIXGBE_WRITE_REG_ARRAY(hw, rssrk_reg, i, rss_key);\n \t\t}\n \t}\n \n@@ -2696,7 +2703,7 @@ ixgbe_hw_rss_hash_set(struct ixgbe_hw *hw, struct rte_eth_rss_conf *rss_conf)\n \t\tmrqc |= IXGBE_MRQC_RSS_FIELD_IPV6_UDP;\n \tif (rss_hf & ETH_RSS_IPV6_UDP_EX)\n \t\tmrqc |= IXGBE_MRQC_RSS_FIELD_IPV6_EX_UDP;\n-\tIXGBE_WRITE_REG(hw, IXGBE_MRQC, mrqc);\n+\tIXGBE_WRITE_REG(hw, mrqc_reg, mrqc);\n }\n \n int\n",
    "prefixes": [
        "dpdk-dev",
        "v2",
        "2/4"
    ]
}