From patchwork Thu Jul 18 22:51:59 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xiao Zhang X-Patchwork-Id: 56718 X-Patchwork-Delegate: qi.z.zhang@intel.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id EEC1428EE; Thu, 18 Jul 2019 15:56:27 +0200 (CEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id 477F3160 for ; Thu, 18 Jul 2019 15:56:26 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Jul 2019 06:56:20 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,278,1559545200"; d="scan'208";a="191617591" Received: from npg-dpdk-zhangxiao.sh.intel.com ([10.67.110.190]) by fmsmga004.fm.intel.com with ESMTP; 18 Jul 2019 06:56:19 -0700 From: Xiao Zhang To: dev@dpdk.org Cc: beilei.xing@intel.com, haiyue.wang@intel.com, qi.z.zhang@intel.com, Xiao Zhang Date: Fri, 19 Jul 2019 06:51:59 +0800 Message-Id: <1563490319-53151-1-git-send-email-xiao.zhang@intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1563470021-16325-1-git-send-email-xiao.zhang@intel.com> References: <1563470021-16325-1-git-send-email-xiao.zhang@intel.com> Subject: [dpdk-dev] [v2] net/i40e: fix SFP X722 not work with FW4.16 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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. For device SFP X722, disable adminq flag to follow the same path with old firmware version to make it work. Signed-off-by: Xiao Zhang --- v2 Unset adminq flag instead of only checking device id when set TPID. v1 Check device id when setting TPID, use adminq if not SFP X722, else use register. --- drivers/net/i40e/i40e_ethdev.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c index 2b9fc45..2b2c877 100644 --- a/drivers/net/i40e/i40e_ethdev.c +++ b/drivers/net/i40e/i40e_ethdev.c @@ -1358,6 +1358,10 @@ eth_i40e_dev_init(struct rte_eth_dev *dev, void *init_params __rte_unused) PMD_INIT_LOG(ERR, "Failed to init adminq: %d", ret); return -EIO; } + /* Firmware of SFP x722 does not support adminq option */ + if (hw->device_id == I40E_DEV_ID_SFP_X722) + hw->flags &= ~I40E_HW_FLAG_802_1AD_CAPABLE; + PMD_INIT_LOG(INFO, "FW %d.%d API %d.%d NVM %02d.%02d.%02d eetrack %04x", hw->aq.fw_maj_ver, hw->aq.fw_min_ver, hw->aq.api_maj_ver, hw->aq.api_min_ver,