DPDK patches and discussions
 help / color / mirror / Atom feed
From: Jingjing Wu <jingjing.wu@intel.com>
To: dev@dpdk.org
Cc: jingjing.wu@intel.com, helin.zhang@intel.com
Subject: [dpdk-dev] [PATCH v2 15/31] net/i40e/base: add FEC bits to PHY capabilities
Date: Fri,  9 Dec 2016 22:39:08 +0800	[thread overview]
Message-ID: <1481294364-83505-16-git-send-email-jingjing.wu@intel.com> (raw)
In-Reply-To: <1481294364-83505-1-git-send-email-jingjing.wu@intel.com>

Add FEC bits to the PHY capabilities AQ command struct. This is required
for 25GbE support. Change the name of the generic mod_type_ext field to
indicate that it is now used for handling FEC.

Signed-off-by: Jingjing Wu <jingjing.wu@intel.com>
---
 drivers/net/i40e/base/i40e_adminq_cmd.h | 13 ++++++++++++-
 drivers/net/i40e/base/i40e_common.c     |  2 ++
 drivers/net/i40e/i40e_ethdev.c          |  2 +-
 3 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/drivers/net/i40e/base/i40e_adminq_cmd.h b/drivers/net/i40e/base/i40e_adminq_cmd.h
index 4f06772..1884758 100644
--- a/drivers/net/i40e/base/i40e_adminq_cmd.h
+++ b/drivers/net/i40e/base/i40e_adminq_cmd.h
@@ -1785,7 +1785,16 @@ struct i40e_aq_get_phy_abilities_resp {
 #define I40E_AQ_PHY_TYPE_EXT_25G_CR	0X02
 #define I40E_AQ_PHY_TYPE_EXT_25G_SR	0x04
 #define I40E_AQ_PHY_TYPE_EXT_25G_LR	0x08
-	u8	mod_type_ext;
+	u8	fec_cfg_curr_mod_ext_info;
+#define I40E_AQ_ENABLE_FEC_KR		0x01
+#define I40E_AQ_ENABLE_FEC_RS		0x02
+#define I40E_AQ_REQUEST_FEC_KR		0x04
+#define I40E_AQ_REQUEST_FEC_RS		0x08
+#define I40E_AQ_ENABLE_FEC_AUTO		0x10
+#define I40E_AQ_FEC
+#define I40E_AQ_MODULE_TYPE_EXT_MASK	0xE0
+#define I40E_AQ_MODULE_TYPE_EXT_SHIFT	5
+
 	u8	ext_comp_code;
 	u8	phy_id[4];
 	u8	module_type[3];
@@ -1819,6 +1828,8 @@ struct i40e_aq_set_phy_config { /* same bits as above in all */
 #define I40E_AQ_SET_FEC_REQUEST_KR	(1 << 2)
 #define I40E_AQ_SET_FEC_REQUEST_RS	(1 << 3)
 #define I40E_AQ_SET_FEC_AUTO		(1 << 4)
+#define I40E_AQ_PHY_FEC_CONFIG_SHIFT	0x0
+#define I40E_AQ_PHY_FEC_CONFIG_MASK	(0x1F << I40E_AQ_PHY_FEC_CONFIG_SHIFT)
 	u8	reserved;
 };
 
diff --git a/drivers/net/i40e/base/i40e_common.c b/drivers/net/i40e/base/i40e_common.c
index b9b0ee6..9f4b872 100644
--- a/drivers/net/i40e/base/i40e_common.c
+++ b/drivers/net/i40e/base/i40e_common.c
@@ -1800,6 +1800,8 @@ enum i40e_status_code i40e_set_fc(struct i40e_hw *hw, u8 *aq_failures,
 		config.eee_capability = abilities.eee_capability;
 		config.eeer = abilities.eeer_val;
 		config.low_power_ctrl = abilities.d3_lpan;
+		config.fec_config = abilities.fec_cfg_curr_mod_ext_info &
+				    I40E_AQ_PHY_FEC_CONFIG_MASK;
 		status = i40e_aq_set_phy_config(hw, &config, NULL);
 
 		if (status)
diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index 319761f..b2f827c 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -1629,7 +1629,7 @@ i40e_phy_conf_link(struct i40e_hw *hw,
 	/* use get_phy_abilities_resp value for the rest */
 	phy_conf.phy_type = phy_ab.phy_type;
 	phy_conf.phy_type_ext = phy_ab.phy_type_ext;
-	phy_conf.fec_config = phy_ab.mod_type_ext;
+	phy_conf.fec_config = phy_ab.fec_cfg_curr_mod_ext_info;
 	phy_conf.eee_capability = phy_ab.eee_capability;
 	phy_conf.eeer = phy_ab.eeer_val;
 	phy_conf.low_power_ctrl = phy_ab.d3_lpan;
-- 
2.4.11

  parent reply	other threads:[~2016-12-09 14:40 UTC|newest]

Thread overview: 108+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-03  1:18 [dpdk-dev] [PATCH 00/31] net/i40e: base code update Jingjing Wu
2016-12-03  1:18 ` [dpdk-dev] [PATCH 01/31] net/i40e/base: add encap csum VF offload flag Jingjing Wu
2016-12-03  1:18 ` [dpdk-dev] [PATCH 02/31] net/i40e/base: preserve extended PHY type field Jingjing Wu
2016-12-05 14:34   ` Ferruh Yigit
2016-12-03  1:18 ` [dpdk-dev] [PATCH 03/31] net/i40e/base: remove unnecessary code Jingjing Wu
2016-12-03  1:18 ` [dpdk-dev] [PATCH 04/31] net/i40e/base: fix bit test mask Jingjing Wu
2016-12-05 14:37   ` Ferruh Yigit
2016-12-03  1:18 ` [dpdk-dev] [PATCH 05/31] net/i40e/base: group base mode VF offload flags Jingjing Wu
2016-12-03  1:18 ` [dpdk-dev] [PATCH 06/31] net/i40e/base: fix long link down notification time Jingjing Wu
2016-12-03  1:18 ` [dpdk-dev] [PATCH 07/31] net/i40e/base: add media type detection for 25G link Jingjing Wu
2016-12-03  1:18 ` [dpdk-dev] [PATCH 08/31] net/i40e/base: add clause22 and clause45 implementation Jingjing Wu
2016-12-03  1:18 ` [dpdk-dev] [PATCH 09/31] net/i40e/base: add bus number info Jingjing Wu
2016-12-03  1:18 ` [dpdk-dev] [PATCH 10/31] net/i40e/base: add protocols when discover capabilities Jingjing Wu
2016-12-03  1:18 ` [dpdk-dev] [PATCH 11/31] net/i40e/base: pass unknown PHY type for unknown PHYs Jingjing Wu
2016-12-03  1:18 ` [dpdk-dev] [PATCH 12/31] net/i40e/base: replace memcpy Jingjing Wu
2016-12-03  1:18 ` [dpdk-dev] [PATCH 13/31] net/i40e/base: deprecating unused macro Jingjing Wu
2016-12-03  1:18 ` [dpdk-dev] [PATCH 14/31] net/i40e/base: remove FPK HyperV VF device ID Jingjing Wu
2016-12-03  1:18 ` [dpdk-dev] [PATCH 15/31] net/i40e/base: add FEC bits to PHY capabilities Jingjing Wu
2016-12-05 14:30   ` Ferruh Yigit
2016-12-03  1:18 ` [dpdk-dev] [PATCH 16/31] net/i40e/base: use BIT() macro instead of bit fields Jingjing Wu
2016-12-03  1:18 ` [dpdk-dev] [PATCH 17/31] net/i40e/base: adjust 25G PHY type values Jingjing Wu
2016-12-03  1:19 ` [dpdk-dev] [PATCH 18/31] net/i40e/base: implement clear all WoL filters Jingjing Wu
2016-12-03  1:19 ` [dpdk-dev] [PATCH 19/31] net/i40e/base: implement set VSI full promisc mode Jingjing Wu
2016-12-03  1:19 ` [dpdk-dev] [PATCH 20/31] net/i40e/base: add defines for new aq command Jingjing Wu
2016-12-03  1:19 ` [dpdk-dev] [PATCH 21/31] net/i40e/base: save link FEC info from link up event Jingjing Wu
2016-12-03  1:19 ` [dpdk-dev] [PATCH 22/31] net/i40e/base: acquire NVM lock before reads on all devices Jingjing Wu
2016-12-03  1:19 ` [dpdk-dev] [PATCH 23/31] net/i40e/base: change shift values to hex Jingjing Wu
2016-12-03  1:19 ` [dpdk-dev] [PATCH 24/31] net/i40e/base: comment that udp port must be in Host order Jingjing Wu
2016-12-03  1:19 ` [dpdk-dev] [PATCH 25/31] net/i40e/base: remove duplicate definitions Jingjing Wu
2016-12-05 14:52   ` Ferruh Yigit
2016-12-03  1:19 ` [dpdk-dev] [PATCH 26/31] net/i40e/base: add ERROR state for NVM update state machine Jingjing Wu
2016-12-03  1:19 ` [dpdk-dev] [PATCH 27/31] net/i40e/base: add broadcast promiscuous control per VLAN Jingjing Wu
2016-12-03  1:19 ` [dpdk-dev] [PATCH 28/31] net/i40e/base: avoid division by zero Jingjing Wu
2016-12-03  1:19 ` [dpdk-dev] [PATCH 29/31] net/i40e/base: fix byte order Jingjing Wu
2016-12-03  1:19 ` [dpdk-dev] [PATCH 30/31] net/i40e/base: remove unused marco Jingjing Wu
2016-12-05 14:55   ` Ferruh Yigit
2016-12-06  6:43     ` Wu, Jingjing
2016-12-03  1:19 ` [dpdk-dev] [PATCH 31/31] net/i40e: remove unused marco from PMD Jingjing Wu
2016-12-05 14:57   ` Ferruh Yigit
2016-12-09 14:38 ` [dpdk-dev] [PATCH v2 00/31] net/i40e: base code update Jingjing Wu
2016-12-09 14:38   ` [dpdk-dev] [PATCH v2 01/31] net/i40e/base: add encap csum VF offload flag Jingjing Wu
2016-12-09 14:38   ` [dpdk-dev] [PATCH v2 02/31] net/i40e/base: preserve extended PHY type field Jingjing Wu
2016-12-09 14:38   ` [dpdk-dev] [PATCH v2 03/31] net/i40e/base: remove unnecessary code Jingjing Wu
2016-12-09 14:38   ` [dpdk-dev] [PATCH v2 04/31] net/i40e/base: fix bit test mask Jingjing Wu
2016-12-09 14:38   ` [dpdk-dev] [PATCH v2 05/31] net/i40e/base: group base mode VF offload flags Jingjing Wu
2016-12-09 14:38   ` [dpdk-dev] [PATCH v2 06/31] net/i40e/base: fix long link down notification time Jingjing Wu
2016-12-09 14:39   ` [dpdk-dev] [PATCH v2 07/31] net/i40e/base: add media type detection for 25G link Jingjing Wu
2016-12-09 14:39   ` [dpdk-dev] [PATCH v2 08/31] net/i40e/base: add clause22 and clause45 implementation Jingjing Wu
2016-12-09 14:39   ` [dpdk-dev] [PATCH v2 09/31] net/i40e/base: add bus number info Jingjing Wu
2016-12-09 14:39   ` [dpdk-dev] [PATCH v2 10/31] net/i40e/base: add protocols when discover capabilities Jingjing Wu
2016-12-09 14:39   ` [dpdk-dev] [PATCH v2 11/31] net/i40e/base: pass unknown PHY type for unknown PHYs Jingjing Wu
2016-12-09 14:39   ` [dpdk-dev] [PATCH v2 12/31] net/i40e/base: replace memcpy Jingjing Wu
2016-12-09 14:39   ` [dpdk-dev] [PATCH v2 13/31] net/i40e/base: deprecating unused macro Jingjing Wu
2016-12-09 14:39   ` [dpdk-dev] [PATCH v2 14/31] net/i40e/base: remove FPK HyperV VF device ID Jingjing Wu
2016-12-09 14:39   ` Jingjing Wu [this message]
2016-12-09 14:39   ` [dpdk-dev] [PATCH v2 16/31] net/i40e/base: use BIT() macro instead of bit fields Jingjing Wu
2016-12-09 14:39   ` [dpdk-dev] [PATCH v2 17/31] net/i40e/base: adjust 25G PHY type values Jingjing Wu
2016-12-09 14:39   ` [dpdk-dev] [PATCH v2 18/31] net/i40e/base: implement clear all WoL filters Jingjing Wu
2016-12-09 14:39   ` [dpdk-dev] [PATCH v2 19/31] net/i40e/base: implement set VSI full promisc mode Jingjing Wu
2016-12-09 14:39   ` [dpdk-dev] [PATCH v2 20/31] net/i40e/base: add defines for new aq command Jingjing Wu
2016-12-09 14:39   ` [dpdk-dev] [PATCH v2 21/31] net/i40e/base: save link FEC info from link up event Jingjing Wu
2016-12-09 14:39   ` [dpdk-dev] [PATCH v2 22/31] net/i40e/base: acquire NVM lock before reads on all devices Jingjing Wu
2016-12-09 14:39   ` [dpdk-dev] [PATCH v2 23/31] net/i40e/base: change shift values to hex Jingjing Wu
2016-12-09 14:39   ` [dpdk-dev] [PATCH v2 24/31] net/i40e/base: comment that udp port must be in Host order Jingjing Wu
2016-12-09 14:39   ` [dpdk-dev] [PATCH v2 25/31] net/i40e/base: remove duplicate definitions Jingjing Wu
2016-12-09 14:39   ` [dpdk-dev] [PATCH v2 26/31] net/i40e/base: add ERROR state for NVM update state machine Jingjing Wu
2016-12-09 14:39   ` [dpdk-dev] [PATCH v2 27/31] net/i40e/base: add broadcast promiscuous control per VLAN Jingjing Wu
2016-12-09 14:39   ` [dpdk-dev] [PATCH v2 28/31] net/i40e/base: avoid division by zero Jingjing Wu
2016-12-09 14:39   ` [dpdk-dev] [PATCH v2 29/31] net/i40e/base: fix byte order Jingjing Wu
2016-12-09 14:39   ` [dpdk-dev] [PATCH v2 30/31] net/i40e/base: remove unused macro Jingjing Wu
2016-12-09 14:39   ` [dpdk-dev] [PATCH v2 31/31] net/i40e: remove unused macro from PMD Jingjing Wu
2016-12-09 16:08   ` [dpdk-dev] [PATCH v2 00/31] net/i40e: base code update Ferruh Yigit
2016-12-10 11:24   ` [dpdk-dev] [PATCH v3 " Jingjing Wu
2016-12-10 11:24     ` [dpdk-dev] [PATCH v3 01/31] net/i40e/base: add encap csum VF offload flag Jingjing Wu
2016-12-10 11:24     ` [dpdk-dev] [PATCH v3 02/31] net/i40e/base: fix flow control set for 25G Jingjing Wu
2016-12-10 11:24     ` [dpdk-dev] [PATCH v3 03/31] net/i40e/base: remove unnecessary code Jingjing Wu
2016-12-10 11:24     ` [dpdk-dev] [PATCH v3 04/31] net/i40e/base: fix bit test mask Jingjing Wu
2016-12-10 11:24     ` [dpdk-dev] [PATCH v3 05/31] net/i40e/base: group base mode VF offload flags Jingjing Wu
2016-12-10 11:24     ` [dpdk-dev] [PATCH v3 06/31] net/i40e/base: fix long link down notification time Jingjing Wu
2016-12-10 11:24     ` [dpdk-dev] [PATCH v3 07/31] net/i40e/base: add media type detection for 25G link Jingjing Wu
2016-12-10 11:24     ` [dpdk-dev] [PATCH v3 08/31] net/i40e/base: add clause22 and clause45 implementation Jingjing Wu
2016-12-10 11:24     ` [dpdk-dev] [PATCH v3 09/31] net/i40e/base: add bus number info Jingjing Wu
2016-12-10 11:24     ` [dpdk-dev] [PATCH v3 10/31] net/i40e/base: add protocols when discover capabilities Jingjing Wu
2016-12-10 11:24     ` [dpdk-dev] [PATCH v3 11/31] net/i40e/base: fix unknown PHYs incorrect identification Jingjing Wu
2016-12-10 11:24     ` [dpdk-dev] [PATCH v3 12/31] net/i40e/base: replace memcpy Jingjing Wu
2016-12-10 11:24     ` [dpdk-dev] [PATCH v3 13/31] net/i40e/base: deprecating unused macro Jingjing Wu
2016-12-10 11:24     ` [dpdk-dev] [PATCH v3 14/31] net/i40e/base: remove FPK HyperV VF device ID Jingjing Wu
2016-12-10 11:24     ` [dpdk-dev] [PATCH v3 15/31] net/i40e/base: add FEC bits to PHY capabilities Jingjing Wu
2016-12-10 11:24     ` [dpdk-dev] [PATCH v3 16/31] net/i40e/base: use BIT() macro instead of bit fields Jingjing Wu
2016-12-10 11:24     ` [dpdk-dev] [PATCH v3 17/31] net/i40e/base: adjust 25G PHY type values Jingjing Wu
2016-12-10 11:24     ` [dpdk-dev] [PATCH v3 18/31] net/i40e/base: implement clear all WoL filters Jingjing Wu
2016-12-10 11:24     ` [dpdk-dev] [PATCH v3 19/31] net/i40e/base: implement set VSI full promisc mode Jingjing Wu
2016-12-10 11:24     ` [dpdk-dev] [PATCH v3 20/31] net/i40e/base: fix wol failure on PF reset Jingjing Wu
2016-12-10 11:24     ` [dpdk-dev] [PATCH v3 21/31] net/i40e/base: save link FEC info from link up event Jingjing Wu
2016-12-10 11:24     ` [dpdk-dev] [PATCH v3 22/31] net/i40e/base: fix NVM access intefering Jingjing Wu
2016-12-10 11:24     ` [dpdk-dev] [PATCH v3 23/31] net/i40e/base: change shift values to hex Jingjing Wu
2016-12-10 11:24     ` [dpdk-dev] [PATCH v3 24/31] net/i40e/base: comment that udp port must be in Host order Jingjing Wu
2016-12-10 11:24     ` [dpdk-dev] [PATCH v3 25/31] net/i40e/base: remove duplicate definitions Jingjing Wu
2016-12-10 11:24     ` [dpdk-dev] [PATCH v3 26/31] net/i40e/base: add ERROR state for NVM update state machine Jingjing Wu
2016-12-10 11:24     ` [dpdk-dev] [PATCH v3 27/31] net/i40e/base: add broadcast promiscuous control per VLAN Jingjing Wu
2016-12-10 11:24     ` [dpdk-dev] [PATCH v3 28/31] net/i40e/base: fix division by zero Jingjing Wu
2016-12-10 11:24     ` [dpdk-dev] [PATCH v3 29/31] net/i40e/base: fix byte order Jingjing Wu
2016-12-10 11:24     ` [dpdk-dev] [PATCH v3 30/31] net/i40e/base: remove unused macro Jingjing Wu
2016-12-10 11:24     ` [dpdk-dev] [PATCH v3 31/31] net/i40e: remove unused macro from PMD Jingjing Wu
2016-12-12 10:32     ` [dpdk-dev] [PATCH v3 00/31] net/i40e: base code update Ferruh Yigit
2016-12-20 15:40       ` Gregory Etelson
2016-12-20 16:21         ` Gregory Etelson
2017-01-12 11:48         ` Ferruh Yigit

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1481294364-83505-16-git-send-email-jingjing.wu@intel.com \
    --to=jingjing.wu@intel.com \
    --cc=dev@dpdk.org \
    --cc=helin.zhang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).