[dpdk-dev] [PATCH v2 1/1] net/i40e: enable auto link update for 25G

2016-11-30 Thread Ferruh Yigit
On 11/29/2016 8:26 PM, Qi Zhang wrote:
> In previous patch for 25G (XXV710) enable
> 75d133dd329: ("net/i40e: enable 25G device"),
> we intend to disable the auto linke update as a work around
> for the issue that link can't be turn on when auto link update
> is enabled. Now we know the root cause, there are interface 
> changes of AQ command "set_phy_config" and "get_phy_capabilities" 
> for 25G. So, this patch remove this limitation.
> 
> Signed-off-by: Qi Zhang 

Commit log updated a little.

Applied to dpdk-next-net/master, thanks.


[dpdk-dev] [PATCH v2 1/1] net/i40e: enable auto link update for 25G

2016-11-29 Thread Qi Zhang
In previous patch for 25G (XXV710) enable
75d133dd329: ("net/i40e: enable 25G device"),
we intend to disable the auto linke update as a work around
for the issue that link can't be turn on when auto link update
is enabled. Now we know the root cause, there are interface 
changes of AQ command "set_phy_config" and "get_phy_capabilities" 
for 25G. So, this patch remove this limitation.

Signed-off-by: Qi Zhang 
---
v2:
- use 25G to replace XXV710 in title to consist with previous patches.
- explain more detail in commit log.

 drivers/net/i40e/i40e_ethdev.c | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index 67778ba..b7a916d 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -1628,6 +1628,8 @@ 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.eee_capability = phy_ab.eee_capability;
phy_conf.eeer = phy_ab.eeer_val;
phy_conf.low_power_ctrl = phy_ab.d3_lpan;
@@ -1653,8 +1655,7 @@ i40e_apply_link_speed(struct rte_eth_dev *dev)
struct rte_eth_conf *conf = >data->dev_conf;

speed = i40e_parse_link_speeds(conf->link_speeds);
-   if (!I40E_PHY_TYPE_SUPPORT_25G(hw->phy.phy_types))
-   abilities |= I40E_AQ_PHY_ENABLE_ATOMIC_LINK;
+   abilities |= I40E_AQ_PHY_ENABLE_ATOMIC_LINK;
if (!(conf->link_speeds & ETH_LINK_SPEED_FIXED))
abilities |= I40E_AQ_PHY_AN_ENABLED;
abilities |= I40E_AQ_PHY_LINK_ENABLED;
@@ -1990,8 +1991,7 @@ i40e_dev_set_link_down(struct rte_eth_dev *dev)
uint8_t abilities = 0;
struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);

-   if (!I40E_PHY_TYPE_SUPPORT_25G(hw->phy.phy_types))
-   abilities = I40E_AQ_PHY_ENABLE_ATOMIC_LINK;
+   abilities = I40E_AQ_PHY_ENABLE_ATOMIC_LINK;
return i40e_phy_conf_link(hw, abilities, speed);
 }

-- 
2.7.4