[dpdk-dev] [PATCH 1/8] net/i40e/base: enable FEC on/off flag setting for X722

Jeff Guo jia.guo at intel.com
Mon Jul 27 05:38:42 CEST 2020


Acked-by: Jeff Guo <jia.guo at intel.com>

On 7/21/2020 3:39 PM, Guinan Sun wrote:
> Starting with API version 1.10 firmware for X722 devices has ability
> to change FEC settings in PHY. Code added in this patch
> checks API version and sets appropriate capability flag.
>
> Signed-off-by: Dawid Lukwinski <dawid.lukwinski at intel.com>
> Signed-off-by: Guinan Sun <guinanx.sun at intel.com>
> ---
>   drivers/net/i40e/base/i40e_adminq.c     | 6 ++++++
>   drivers/net/i40e/base/i40e_adminq_cmd.h | 2 ++
>   drivers/net/i40e/base/i40e_type.h       | 1 +
>   3 files changed, 9 insertions(+)
>
> diff --git a/drivers/net/i40e/base/i40e_adminq.c b/drivers/net/i40e/base/i40e_adminq.c
> index c89e1fb3f..0da45f03e 100644
> --- a/drivers/net/i40e/base/i40e_adminq.c
> +++ b/drivers/net/i40e/base/i40e_adminq.c
> @@ -603,6 +603,12 @@ STATIC void i40e_set_hw_flags(struct i40e_hw *hw)
>   		    (aq->api_maj_ver == 1 &&
>   		     aq->api_min_ver >= I40E_MINOR_VER_GET_LINK_INFO_X722))
>   			hw->flags |= I40E_HW_FLAG_AQ_PHY_ACCESS_CAPABLE;
> +
> +		if (aq->api_maj_ver > 1 ||
> +		    (aq->api_maj_ver == 1 &&
> +		     aq->api_min_ver >= I40E_MINOR_VER_FW_REQUEST_FEC_X722))
> +			hw->flags |= I40E_HW_FLAG_X722_FEC_REQUEST_CAPABLE;
> +
>   		/* fall through */
>   	default:
>   		break;
> diff --git a/drivers/net/i40e/base/i40e_adminq_cmd.h b/drivers/net/i40e/base/i40e_adminq_cmd.h
> index 1905167f5..f790183be 100644
> --- a/drivers/net/i40e/base/i40e_adminq_cmd.h
> +++ b/drivers/net/i40e/base/i40e_adminq_cmd.h
> @@ -25,6 +25,8 @@
>   #define I40E_MINOR_VER_GET_LINK_INFO_X722 0x0009
>   /* API version 1.6 for X722 devices adds ability to stop FW LLDP agent */
>   #define I40E_MINOR_VER_FW_LLDP_STOPPABLE_X722 0x0006
> +/* API version 1.10 for X722 devices adds ability to request FEC encoding */
> +#define I40E_MINOR_VER_FW_REQUEST_FEC_X722 0x000A
>   
>   struct i40e_aq_desc {
>   	__le16 flags;
> diff --git a/drivers/net/i40e/base/i40e_type.h b/drivers/net/i40e/base/i40e_type.h
> index 014a4c132..b5b5b928d 100644
> --- a/drivers/net/i40e/base/i40e_type.h
> +++ b/drivers/net/i40e/base/i40e_type.h
> @@ -745,6 +745,7 @@ struct i40e_hw {
>   #define I40E_HW_FLAG_FW_LLDP_PERSISTENT     BIT_ULL(5)
>   #define I40E_HW_FLAG_AQ_PHY_ACCESS_EXTENDED BIT_ULL(6)
>   #define I40E_HW_FLAG_DROP_MODE		    BIT_ULL(7)
> +#define I40E_HW_FLAG_X722_FEC_REQUEST_CAPABLE BIT_ULL(8)
>   	u64 flags;
>   
>   	/* Used in set switch config AQ command */


More information about the dev mailing list