get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 15482,
    "url": "http://patches.dpdk.org/api/patches/15482/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1472312902-16963-18-git-send-email-xiao.w.wang@intel.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": "<1472312902-16963-18-git-send-email-xiao.w.wang@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1472312902-16963-18-git-send-email-xiao.w.wang@intel.com",
    "date": "2016-08-27T15:48:00",
    "name": "[dpdk-dev,17/39] net/ixgbe/base: access IOSF by host interface",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "fca2ff36b8664817c68aa8182b39cccdbdea351f",
    "submitter": {
        "id": 281,
        "url": "http://patches.dpdk.org/api/people/281/?format=api",
        "name": "Xiao Wang",
        "email": "xiao.w.wang@intel.com"
    },
    "delegate": {
        "id": 10,
        "url": "http://patches.dpdk.org/api/users/10/?format=api",
        "username": "bruce",
        "first_name": "Bruce",
        "last_name": "Richardson",
        "email": "bruce.richardson@intel.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1472312902-16963-18-git-send-email-xiao.w.wang@intel.com/mbox/",
    "series": [],
    "comments": "http://patches.dpdk.org/api/patches/15482/comments/",
    "check": "pending",
    "checks": "http://patches.dpdk.org/api/patches/15482/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 EC0D55A71;\n\tSat, 27 Aug 2016 17:49:19 +0200 (CEST)",
            "from mga03.intel.com (mga03.intel.com [134.134.136.65])\n\tby dpdk.org (Postfix) with ESMTP id 7A7CC5946\n\tfor <dev@dpdk.org>; Sat, 27 Aug 2016 17:49:12 +0200 (CEST)",
            "from fmsmga005.fm.intel.com ([10.253.24.32])\n\tby orsmga103.jf.intel.com with ESMTP; 27 Aug 2016 08:49:11 -0700",
            "from shvmail01.sh.intel.com ([10.239.29.42])\n\tby fmsmga005.fm.intel.com with ESMTP; 27 Aug 2016 08:49:10 -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 u7RFn8Nt008776;\n\tSat, 27 Aug 2016 23:49:08 +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 u7RFn68P017117; Sat, 27 Aug 2016 23:49:08 +0800",
            "(from xiaowan1@localhost)\n\tby shecgisg004.sh.intel.com (8.13.6/8.13.6/Submit) id u7RFn66a017113; \n\tSat, 27 Aug 2016 23:49:06 +0800"
        ],
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.28,587,1464678000\"; d=\"scan'208\";a=\"1825100\"",
        "From": "Xiao Wang <xiao.w.wang@intel.com>",
        "To": "wenzhuo.lu@intel.com",
        "Cc": "dev@dpdk.org, Xiao Wang <xiao.w.wang@intel.com>",
        "Date": "Sat, 27 Aug 2016 23:48:00 +0800",
        "Message-Id": "<1472312902-16963-18-git-send-email-xiao.w.wang@intel.com>",
        "X-Mailer": "git-send-email 1.7.4.1",
        "In-Reply-To": "<1472312902-16963-1-git-send-email-xiao.w.wang@intel.com>",
        "References": "<1472312902-16963-1-git-send-email-xiao.w.wang@intel.com>",
        "Subject": "[dpdk-dev] [PATCH 17/39] net/ixgbe/base: access IOSF by host\n\tinterface",
        "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": "This patch makes sure that we access IOSF registers through the HIC\n(host interface command) for the majority of X550em devices. All devices\nwith NVM are capable of using the HIC.\n\nFor consistency all instances where the ixgbe_read/write_iosf_sb_reg_x550\nis called directly are converted to function pointer calls.\n\nSigned-off-by: Xiao Wang <xiao.w.wang@intel.com>\n---\n drivers/net/ixgbe/base/ixgbe_phy.c  |  2 +-\n drivers/net/ixgbe/base/ixgbe_x550.c | 38 ++++++++++++++++++++++---------------\n 2 files changed, 24 insertions(+), 16 deletions(-)",
    "diff": "diff --git a/drivers/net/ixgbe/base/ixgbe_phy.c b/drivers/net/ixgbe/base/ixgbe_phy.c\nindex d33d0f8..ee8618f 100644\n--- a/drivers/net/ixgbe/base/ixgbe_phy.c\n+++ b/drivers/net/ixgbe/base/ixgbe_phy.c\n@@ -741,7 +741,7 @@ s32 ixgbe_write_phy_reg_generic(struct ixgbe_hw *hw, u32 reg_addr,\n \tDEBUGFUNC(\"ixgbe_write_phy_reg_generic\");\n \n \tif (hw->mac.ops.acquire_swfw_sync(hw, gssr) == IXGBE_SUCCESS) {\n-\t\tstatus = ixgbe_write_phy_reg_mdi(hw, reg_addr, device_type,\n+\t\tstatus = hw->phy.ops.write_reg_mdi(hw, reg_addr, device_type,\n \t\t\t\t\t\t phy_data);\n \t\thw->mac.ops.release_swfw_sync(hw, gssr);\n \t} else {\ndiff --git a/drivers/net/ixgbe/base/ixgbe_x550.c b/drivers/net/ixgbe/base/ixgbe_x550.c\nindex ddd1195..c8873ee 100644\n--- a/drivers/net/ixgbe/base/ixgbe_x550.c\n+++ b/drivers/net/ixgbe/base/ixgbe_x550.c\n@@ -652,8 +652,14 @@ s32 ixgbe_init_ops_X550EM_a(struct ixgbe_hw *hw)\n \t/* Start with generic X550EM init */\n \tret_val = ixgbe_init_ops_X550EM(hw);\n \n-\tmac->ops.read_iosf_sb_reg = ixgbe_read_iosf_sb_reg_x550;\n-\tmac->ops.write_iosf_sb_reg = ixgbe_write_iosf_sb_reg_x550;\n+\tif (hw->device_id == IXGBE_DEV_ID_X550EM_A_SGMII ||\n+\t    hw->device_id == IXGBE_DEV_ID_X550EM_A_SGMII_L) {\n+\t\tmac->ops.read_iosf_sb_reg = ixgbe_read_iosf_sb_reg_x550;\n+\t\tmac->ops.write_iosf_sb_reg = ixgbe_write_iosf_sb_reg_x550;\n+\t} else {\n+\t\tmac->ops.read_iosf_sb_reg = ixgbe_read_iosf_sb_reg_x550a;\n+\t\tmac->ops.write_iosf_sb_reg = ixgbe_write_iosf_sb_reg_x550a;\n+\t}\n \tmac->ops.acquire_swfw_sync = ixgbe_acquire_swfw_sync_X550a;\n \tmac->ops.release_swfw_sync = ixgbe_release_swfw_sync_X550a;\n \n@@ -2807,24 +2813,25 @@ s32 ixgbe_setup_mac_link_sfp_x550a(struct ixgbe_hw *hw,\n  **/\n STATIC s32 ixgbe_setup_ixfi_x550em_x(struct ixgbe_hw *hw)\n {\n+\tstruct ixgbe_mac_info *mac = &hw->mac;\n \ts32 status;\n \tu32 reg_val;\n \n \t/* Disable training protocol FSM. */\n-\tstatus = ixgbe_read_iosf_sb_reg_x550(hw,\n+\tstatus = mac->ops.read_iosf_sb_reg(hw,\n \t\t\t\tIXGBE_KRM_RX_TRN_LINKUP_CTRL(hw->bus.lan_id),\n \t\t\t\tIXGBE_SB_IOSF_TARGET_KR_PHY, &reg_val);\n \tif (status != IXGBE_SUCCESS)\n \t\treturn status;\n \treg_val |= IXGBE_KRM_RX_TRN_LINKUP_CTRL_CONV_WO_PROTOCOL;\n-\tstatus = ixgbe_write_iosf_sb_reg_x550(hw,\n+\tstatus = mac->ops.write_iosf_sb_reg(hw,\n \t\t\t\tIXGBE_KRM_RX_TRN_LINKUP_CTRL(hw->bus.lan_id),\n \t\t\t\tIXGBE_SB_IOSF_TARGET_KR_PHY, reg_val);\n \tif (status != IXGBE_SUCCESS)\n \t\treturn status;\n \n \t/* Disable Flex from training TXFFE. */\n-\tstatus = ixgbe_read_iosf_sb_reg_x550(hw,\n+\tstatus = mac->ops.read_iosf_sb_reg(hw,\n \t\t\t\tIXGBE_KRM_DSP_TXFFE_STATE_4(hw->bus.lan_id),\n \t\t\t\tIXGBE_SB_IOSF_TARGET_KR_PHY, &reg_val);\n \tif (status != IXGBE_SUCCESS)\n@@ -2832,12 +2839,12 @@ STATIC s32 ixgbe_setup_ixfi_x550em_x(struct ixgbe_hw *hw)\n \treg_val &= ~IXGBE_KRM_DSP_TXFFE_STATE_C0_EN;\n \treg_val &= ~IXGBE_KRM_DSP_TXFFE_STATE_CP1_CN1_EN;\n \treg_val &= ~IXGBE_KRM_DSP_TXFFE_STATE_CO_ADAPT_EN;\n-\tstatus = ixgbe_write_iosf_sb_reg_x550(hw,\n+\tstatus = mac->ops.write_iosf_sb_reg(hw,\n \t\t\t\tIXGBE_KRM_DSP_TXFFE_STATE_4(hw->bus.lan_id),\n \t\t\t\tIXGBE_SB_IOSF_TARGET_KR_PHY, reg_val);\n \tif (status != IXGBE_SUCCESS)\n \t\treturn status;\n-\tstatus = ixgbe_read_iosf_sb_reg_x550(hw,\n+\tstatus = mac->ops.read_iosf_sb_reg(hw,\n \t\t\t\tIXGBE_KRM_DSP_TXFFE_STATE_5(hw->bus.lan_id),\n \t\t\t\tIXGBE_SB_IOSF_TARGET_KR_PHY, &reg_val);\n \tif (status != IXGBE_SUCCESS)\n@@ -2845,14 +2852,14 @@ STATIC s32 ixgbe_setup_ixfi_x550em_x(struct ixgbe_hw *hw)\n \treg_val &= ~IXGBE_KRM_DSP_TXFFE_STATE_C0_EN;\n \treg_val &= ~IXGBE_KRM_DSP_TXFFE_STATE_CP1_CN1_EN;\n \treg_val &= ~IXGBE_KRM_DSP_TXFFE_STATE_CO_ADAPT_EN;\n-\tstatus = ixgbe_write_iosf_sb_reg_x550(hw,\n+\tstatus = mac->ops.write_iosf_sb_reg(hw,\n \t\t\t\tIXGBE_KRM_DSP_TXFFE_STATE_5(hw->bus.lan_id),\n \t\t\t\tIXGBE_SB_IOSF_TARGET_KR_PHY, reg_val);\n \tif (status != IXGBE_SUCCESS)\n \t\treturn status;\n \n \t/* Enable override for coefficients. */\n-\tstatus = ixgbe_read_iosf_sb_reg_x550(hw,\n+\tstatus = mac->ops.read_iosf_sb_reg(hw,\n \t\t\t\tIXGBE_KRM_TX_COEFF_CTRL_1(hw->bus.lan_id),\n \t\t\t\tIXGBE_SB_IOSF_TARGET_KR_PHY, &reg_val);\n \tif (status != IXGBE_SUCCESS)\n@@ -2861,7 +2868,7 @@ STATIC s32 ixgbe_setup_ixfi_x550em_x(struct ixgbe_hw *hw)\n \treg_val |= IXGBE_KRM_TX_COEFF_CTRL_1_CZERO_EN;\n \treg_val |= IXGBE_KRM_TX_COEFF_CTRL_1_CPLUS1_OVRRD_EN;\n \treg_val |= IXGBE_KRM_TX_COEFF_CTRL_1_CMINUS1_OVRRD_EN;\n-\tstatus = ixgbe_write_iosf_sb_reg_x550(hw,\n+\tstatus = mac->ops.write_iosf_sb_reg(hw,\n \t\t\t\tIXGBE_KRM_TX_COEFF_CTRL_1(hw->bus.lan_id),\n \t\t\t\tIXGBE_SB_IOSF_TARGET_KR_PHY, reg_val);\n \treturn status;\n@@ -2877,11 +2884,12 @@ STATIC s32 ixgbe_setup_ixfi_x550em_x(struct ixgbe_hw *hw)\n  **/\n STATIC s32 ixgbe_setup_ixfi_x550em(struct ixgbe_hw *hw, ixgbe_link_speed *speed)\n {\n+\tstruct ixgbe_mac_info *mac = &hw->mac;\n \ts32 status;\n \tu32 reg_val;\n \n \t/* Disable AN and force speed to 10G Serial. */\n-\tstatus = ixgbe_read_iosf_sb_reg_x550(hw,\n+\tstatus = mac->ops.read_iosf_sb_reg(hw,\n \t\t\t\t\tIXGBE_KRM_LINK_CTRL_1(hw->bus.lan_id),\n \t\t\t\t\tIXGBE_SB_IOSF_TARGET_KR_PHY, &reg_val);\n \tif (status != IXGBE_SUCCESS)\n@@ -2903,7 +2911,7 @@ STATIC s32 ixgbe_setup_ixfi_x550em(struct ixgbe_hw *hw, ixgbe_link_speed *speed)\n \t\treturn IXGBE_ERR_LINK_SETUP;\n \t}\n \n-\tstatus = ixgbe_write_iosf_sb_reg_x550(hw,\n+\tstatus = mac->ops.write_iosf_sb_reg(hw,\n \t\t\t\t\tIXGBE_KRM_LINK_CTRL_1(hw->bus.lan_id),\n \t\t\t\t\tIXGBE_SB_IOSF_TARGET_KR_PHY, reg_val);\n \tif (status != IXGBE_SUCCESS)\n@@ -2917,13 +2925,13 @@ STATIC s32 ixgbe_setup_ixfi_x550em(struct ixgbe_hw *hw, ixgbe_link_speed *speed)\n \t}\n \n \t/* Toggle port SW reset by AN reset. */\n-\tstatus = ixgbe_read_iosf_sb_reg_x550(hw,\n+\tstatus = mac->ops.read_iosf_sb_reg(hw,\n \t\t\t\t\tIXGBE_KRM_LINK_CTRL_1(hw->bus.lan_id),\n \t\t\t\t\tIXGBE_SB_IOSF_TARGET_KR_PHY, &reg_val);\n \tif (status != IXGBE_SUCCESS)\n \t\treturn status;\n \treg_val |= IXGBE_KRM_LINK_CTRL_1_TETH_AN_RESTART;\n-\tstatus = ixgbe_write_iosf_sb_reg_x550(hw,\n+\tstatus = mac->ops.write_iosf_sb_reg(hw,\n \t\t\t\t\tIXGBE_KRM_LINK_CTRL_1(hw->bus.lan_id),\n \t\t\t\t\tIXGBE_SB_IOSF_TARGET_KR_PHY, reg_val);\n \n@@ -4504,7 +4512,7 @@ s32 ixgbe_write_phy_reg_x550a(struct ixgbe_hw *hw, u32 reg_addr,\n \tDEBUGFUNC(\"ixgbe_write_phy_reg_x550a\");\n \n \tif (hw->mac.ops.acquire_swfw_sync(hw, mask) == IXGBE_SUCCESS) {\n-\t\tstatus = ixgbe_write_phy_reg_mdi(hw, reg_addr, device_type,\n+\t\tstatus = hw->phy.ops.write_reg_mdi(hw, reg_addr, device_type,\n \t\t\t\t\t\t phy_data);\n \t\thw->mac.ops.release_swfw_sync(hw, mask);\n \t} else {\n",
    "prefixes": [
        "dpdk-dev",
        "17/39"
    ]
}