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

Ferruh Yigit ferruh.yigit at intel.com
Tue Nov 29 18:45:58 CET 2016


Hi Qi,

On 11/24/2016 11:43 PM, Qi Zhang wrote:
> This patch remove the limitation that XXV710 device does

XXV710 is 25G device, and support added in 16.11 (please correct me if
this is wrong.), but I can't find any DPDK documentation for this device.

Can you please add some documentation, at least to
http://dpdk.org/doc/nics and http://dpdk.org/doc/guides/nics/i40e.html
in a different patch?

> not support auto link update.

Can you please add more details that why we can remove the limitation now?

> 
> Signed-off-by: Qi Zhang <qi.z.zhang at intel.com>
> ---
>  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;

And these changes look like called for all device types, just to double
check, are these 25G specific?

>  	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 = &dev->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);
>  }
>  
> 



More information about the dev mailing list