From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 950CFA034C for ; Mon, 30 May 2022 11:22:32 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3669242BB0; Mon, 30 May 2022 11:22:30 +0200 (CEST) Received: from smtpbg150.qq.com (smtpbg150.qq.com [18.132.163.193]) by mails.dpdk.org (Postfix) with ESMTP id EEF8F42BB1 for ; Mon, 30 May 2022 11:22:27 +0200 (CEST) X-QQ-mid: bizesmtp87t1653902544tgn55i1j Received: from wxdbg.localdomain.com ( [183.129.236.74]) by bizesmtp.qq.com (ESMTP) with id ; Mon, 30 May 2022 17:22:23 +0800 (CST) X-QQ-SSF: 01400000000000F0P000000A0000000 X-QQ-FEAT: 9j3spoUEBeJAOoOyKaUtVoESHj0Xuof6WWfQurSZg3IffXKShhWgeaAAhe1cJ /LPdl/c/2Lvbguabnkrg0Nrq9nsQx4oWrJLUzilQS8eNEBNXUzkuOON9+x0sB+CRgKgUqEd TvYG02tk1MrkuxjLCfS+7WlHuAw6MS/xWfssXm4jOzzXBYoB6yRhzAr4aWq17Gn+K3lD+97 o/SKNxLF3ShzuYBfd39BiqJ/txMN+UTT2VgQIIojZYuc1Zand9IXQTr3JCPRceZ5VzLTOtb pDZBxfTGORpzeqR+rsmyV4nIE3wbW2xBEBHTSpS5AY8p+VTI4jRDShFVViZqYQJN+hWJK7Y uHcTjHHSyhdH/nqCIIIPEuFwBd1M+WIiuiC/2SKQ1eKMFK26AA= X-QQ-GoodBg: 2 From: Jiawen Wu To: dev@dpdk.org Cc: Jiawen Wu , stable@dpdk.org Subject: [PATCH 8/9] net/txgbe: fix SGMII mode to link up Date: Mon, 30 May 2022 17:30:15 +0800 Message-Id: <20220530093016.16326-9-jiawenwu@trustnetic.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220530093016.16326-1-jiawenwu@trustnetic.com> References: <20220530093016.16326-1-jiawenwu@trustnetic.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:trustnetic.com:qybgforeign:qybgforeign8 X-QQ-Bgrelay: 1 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Fix SGMII mode to link up. Fixes: 01c3cf5c85a7 ("net/txgbe: add autoneg control read and write") Cc: stable@dpdk.org Signed-off-by: Jiawen Wu --- drivers/net/txgbe/base/txgbe_phy.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/net/txgbe/base/txgbe_phy.c b/drivers/net/txgbe/base/txgbe_phy.c index da2bbc43e0..9f46d5bdb0 100644 --- a/drivers/net/txgbe/base/txgbe_phy.c +++ b/drivers/net/txgbe/base/txgbe_phy.c @@ -1367,9 +1367,17 @@ static void txgbe_set_sgmii_an37_ability(struct txgbe_hw *hw) { u32 value; + u8 device_type = hw->subsystem_device_id & 0xF0; wr32_epcs(hw, VR_XS_OR_PCS_MMD_DIGI_CTL1, 0x3002); - wr32_epcs(hw, SR_MII_MMD_AN_CTL, 0x0105); + /* for sgmii + external phy, set to 0x0105 (phy sgmii mode) */ + /* for sgmii direct link, set to 0x010c (mac sgmii mode) */ + if (device_type == TXGBE_DEV_ID_MAC_SGMII || + hw->phy.media_type == txgbe_media_type_fiber) + wr32_epcs(hw, SR_MII_MMD_AN_CTL, 0x010C); + else if (device_type == TXGBE_DEV_ID_SGMII || + device_type == TXGBE_DEV_ID_XAUI) + wr32_epcs(hw, SR_MII_MMD_AN_CTL, 0x0105); wr32_epcs(hw, SR_MII_MMD_DIGI_CTL, 0x0200); value = rd32_epcs(hw, SR_MII_MMD_CTL); value = (value & ~0x1200) | (0x1 << 12) | (0x1 << 9); @@ -2280,6 +2288,8 @@ void txgbe_autoc_write(struct txgbe_hw *hw, u64 autoc) } } else if (hw->phy.media_type == txgbe_media_type_fiber) { txgbe_set_link_to_sfi(hw, speed); + if (speed == TXGBE_LINK_SPEED_1GB_FULL) + txgbe_set_sgmii_an37_ability(hw); } if (speed == TXGBE_LINK_SPEED_10GB_FULL) -- 2.27.0