FW4.16 of SFP X722 does not support setting TPID by set_switch_config
adminq operation, for firmware version less than 4.16 TPID is set by
register instead. Follow the same path with new firmware version for
SFP X722 to make it work.

Signed-off-by: Xiao Zhang <xiao.zh...@intel.com>
---
 drivers/net/i40e/i40e_ethdev.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index 2b9fc45..bf6dc2b 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -3708,7 +3708,9 @@ i40e_vlan_tpid_set(struct rte_eth_dev *dev,
        }
 
        /* 802.1ad frames ability is added in NVM API 1.7*/
-       if (hw->flags & I40E_HW_FLAG_802_1AD_CAPABLE) {
+       /* FW4.16 for SFP x722 does not support set_switch_config option */
+       if ((hw->flags & I40E_HW_FLAG_802_1AD_CAPABLE) &&
+               hw->device_id != I40E_DEV_ID_SFP_X722) {
                if (qinq) {
                        if (vlan_type == ETH_VLAN_TYPE_OUTER)
                                hw->first_tag = rte_cpu_to_le_16(tpid);
-- 
2.7.4

Reply via email to