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 531AEA0545 for ; Mon, 20 Jun 2022 09:47:15 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4AA0940150; Mon, 20 Jun 2022 09:47:15 +0200 (CEST) Received: from smtpproxy21.qq.com (smtpbg701.qq.com [203.205.195.86]) by mails.dpdk.org (Postfix) with ESMTP id 4DEEF40150 for ; Mon, 20 Jun 2022 09:47:13 +0200 (CEST) X-QQ-mid: bizesmtp72t1655711222tbap07kv Received: from wxdbg.localdomain.com ( [183.129.236.74]) by bizesmtp.qq.com (ESMTP) with id ; Mon, 20 Jun 2022 15:47:02 +0800 (CST) X-QQ-SSF: 01400000002000F0P000B00A0000000 X-QQ-FEAT: 4dZ4olfoUCtPMKZdXa+bpqXeWTuyFKCuskMHeoNQHpoB6JDi/F/vRkT0mDVM4 IOONuNHLGiJ59RxjOxFsmN3TIWTzz9lmXmEor8S/9/jIc+qll4wV1SQuD2J+SFXAOce/Wa+ rEoToQu6ByKxIGeUk6dSROJnwBcI3AUKcKPRHYWsPLD488YcY4RaEpLqTN2r1uegTQCXpAW B3dca+9PQx7f0BU+U02W7DJm/4mPsDC/+Sk5OlvV/7P5LRyQQUkkU1A7JSW2FgImnO26mV2 jrMozWLhLqJzZ5vo2OjJIodn3zDUQBHPHNF510E+t6JwVs16rQFCGvNJJzgc54dzVG1me06 5OGmzRA X-QQ-GoodBg: 2 From: Jiawen Wu To: dev@dpdk.org Cc: Jiawen Wu , stable@dpdk.org Subject: [PATCH 3/7] net/txgbe: fix register polling Date: Mon, 20 Jun 2022 15:55:08 +0800 Message-Id: <20220620075512.588744-4-jiawenwu@trustnetic.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220620075512.588744-1-jiawenwu@trustnetic.com> References: <20220620075512.588744-1-jiawenwu@trustnetic.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:trustnetic.com:qybgforeign:qybgforeign3 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 to poll some specific registers, which expect bit 0. Fixes: 24a4c76aff4d ("net/txgbe: add error types and registers") Cc: stable@dpdk.org Signed-off-by: Jiawen Wu --- drivers/net/txgbe/base/txgbe_regs.h | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/net/txgbe/base/txgbe_regs.h b/drivers/net/txgbe/base/txgbe_regs.h index 3139796911..911bb6e04e 100644 --- a/drivers/net/txgbe/base/txgbe_regs.h +++ b/drivers/net/txgbe/base/txgbe_regs.h @@ -1864,8 +1864,13 @@ po32m(struct txgbe_hw *hw, u32 reg, u32 mask, u32 expect, u32 *actual, } do { - all |= rd32(hw, reg); - value |= mask & all; + if (expect != 0) { + all |= rd32(hw, reg); + value |= mask & all; + } else { + all = rd32(hw, reg); + value = mask & all; + } if (value == expect) break; @@ -1898,7 +1903,7 @@ po32m(struct txgbe_hw *hw, u32 reg, u32 mask, u32 expect, u32 *actual, #define wr32w(hw, reg, val, mask, slice) do { \ wr32((hw), reg, val); \ - po32m((hw), reg, mask, mask, NULL, 5, slice); \ + po32m((hw), reg, mask, 0, NULL, 5, slice); \ } while (0) #define TXGBE_XPCS_IDAADDR 0x13000 -- 2.27.0