[dpdk-dev] [PATCH v3 1/2] net/i40e: use PHY type to check PHY capability

Wu, Jingjing jingjing.wu at intel.com
Sun Sep 25 11:58:49 CEST 2016



> -----Original Message-----
> From: Zhang, Qi Z
> Sent: Friday, September 23, 2016 1:50 AM
> To: Wu, Jingjing <jingjing.wu at intel.com>; Zhang, Helin <helin.zhang at intel.com>
> Cc: dev at dpdk.org; Zhang, Qi Z <qi.z.zhang at intel.com>
> Subject: [PATCH v3 1/2] net/i40e: use PHY type to check PHY capability
> 
> In previous code, we use device ID to check PHY
> capability which is not extensible since there is
> always new device be added.
> Now we use PHY type to detect PHY capability.
> PHY type encoded all link speed the device support,
> it is read out through aq command "get_phy_capability"
> at init stage.
> 
> Signed-off-by: Zhang Qi <qi.z.zhang at intel.com>
> ---
>  drivers/net/i40e/i40e_ethdev.c | 33 ++++++++++++++++++++++++++++-----
>  drivers/net/i40e/i40e_ethdev.h |  8 ++++++++
>  2 files changed, 36 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
> index acc25a2..9658503 100644
> --- a/drivers/net/i40e/i40e_ethdev.c
> +++ b/drivers/net/i40e/i40e_ethdev.c
> @@ -411,6 +411,7 @@ static int i40e_dev_filter_ctrl(struct rte_eth_dev *dev,
>  				void *arg);
>  static int i40e_dev_get_dcb_info(struct rte_eth_dev *dev,
>  				  struct rte_eth_dcb_info *dcb_info);
> +static int i40e_dev_sync_phy_type(struct i40e_hw *hw);
>  static void i40e_configure_registers(struct i40e_hw *hw);
>  static void i40e_hw_init(struct rte_eth_dev *dev);
>  static int i40e_config_qinq(struct i40e_hw *hw, struct i40e_vsi *vsi);
> @@ -1028,7 +1029,11 @@ eth_i40e_dev_init(struct rte_eth_dev *dev)
>  	config_floating_veb(dev);
>  	/* Clear PXE mode */
>  	i40e_clear_pxe_mode(hw);
> -
> +	ret = i40e_dev_sync_phy_type(hw);
> +	if (ret != I40E_SUCCESS) {
> +		PMD_INIT_LOG(ERR, "Failed to init phy type: %d", ret);
> +		goto err_sync_phy_type;
> +	}
Should we return from device initialization if failure?
And return value of i40e_dev_sync_phy_type is standard error, but you check
It by comparing with I40E defined error code.

Thanks
Jingjing



More information about the dev mailing list