From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 281D4C433F5 for ; Tue, 4 Jan 2022 15:45:41 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 334D182A59; Tue, 4 Jan 2022 16:45:39 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=notsyncing.net Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: by phobos.denx.de (Postfix, from userid 109) id 86E7A82EC6; Tue, 4 Jan 2022 16:45:37 +0100 (CET) Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.126.130]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id DF0A080335 for ; Tue, 4 Jan 2022 16:45:34 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=notsyncing.net Authentication-Results: phobos.denx.de; spf=none smtp.mailfrom=markus@notsyncing.net Received: from localhost.localdomain ([88.152.184.187]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MxE1Q-1mBqzn2gDQ-00xYRz; Tue, 04 Jan 2022 16:45:27 +0100 From: Markus Koch To: ioana.ciornei@nxp.com, joe.hershberger@ni.com, rfried.dev@gmail.com Cc: madalin.bucur@oss.nxp.com, camelia.groza@nxp.com, u-boot@lists.denx.de, Markus Koch Subject: [PATCH v2] net: fsl_mdio: Fix busy flag polling register Date: Tue, 4 Jan 2022 16:41:50 +0100 Message-Id: <20220104154149.9473-1-markus@notsyncing.net> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K1:Y2CsYBOgNnECcHuoCpULT/qdKDcBXBt0PkSYdS4NGlmfpVVJydk U1m8dt9PGNSyCDlnrjs4Ss3NDqwd9saNmOtOh6afjDCee8Rx+dxRdA1s5vEYEdjaMR1FFqj /DeLuPDfYaG3mm2oELgeugBDFwraWp9RKZobxTMevUZTNByPQHzVl2XLx3xZXCKogLy0zRX I6GwLdh5Ub8bC8XRIHOtw== X-UI-Out-Filterresults: notjunk:1;V03:K0:Y3JKPzYJmnA=:v6gFXVA8woF8ptUFLtIaAA jRNtJ/5lPZY+xkXwYak5I33ObargkNTRXsXxQxI1VR2g3KeBVoGkr4o6H9JGqUxxsS43baMf9 KUNiy38XHIlaIic2vHiPl8qnLlebE8jQaMF0W2XGnzGDu9eUel9xo4fIutOPh56uL/EvB1iPS /2JCC7/5NvA/nifBbO1YtjVLH3ZAMEOdkciP4s9lcr8OKKhmWjDiCUkDqiujM2UsnKVs4xAY7 hOdI9csDx5eDSCqPNC6RHoDRRStWfBB0tRGCzH9rsUAwsq5LmDroTJm9UK6oExc8YZbbXgmQO 1uaddUlxt7+UxrPJcH7T6yeR4Ss0XTbJGgIcgLVEhgvxpQ+GWQZJAqUAlj/45vjcHYRTk/ua5 8epfotb+EEJsTM090V+ptR5eH8q121pLp4hM0DPlX6yIggvp2c6iutAzzOY2YbBiadkBF0Ar+ fmcb1eOkb3OrIKxXvqh8AMTNYqMOObphsODdUESv4UkSef+a9uRZOCWWi/ZEv9iauLa2gfIvC 0HNCS9yp+c+uC0jzDtyH1XLcuVTAl4oqb1ygXZC1AOqxlzvPqbqiJmVoiyQL2ZcMJqLBwLNA6 PncscGSQDo3jEopIImGm/pS309UJpMkugP/O9YPbKoql87r8yuzXuCTW5qFmONBsPalHJx9FF KwTZf6O7R4mfX9vICXvoDn9KEdj+l9zp6bOkJBjXKn779RwEPBtQ1BSuwYrcyuooZPYjR7a+y 9BSydf+Qdjx3poOY X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.38 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean NXP's mEMAC reference manual, Chapter 6.5.5 "MDIO Ethernet Management Interface usage", specifies to poll the BSY (0) bit in the CFG/STAT register to wait until a transaction has finished, not bit 31 in the data register. In the Linux kernel, this has already been fixed in commit 26eee0210ad7 ("net/fsl: fix a bug in xgmac_mdio"). Signed-off-by: Markus Koch --- Changed to use the mdio_stat register. Thanks, Ioana! drivers/net/fm/memac_phy.c | 2 +- include/fsl_memac.h | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/net/fm/memac_phy.c b/drivers/net/fm/memac_phy.c index 72b500a6d1..3ddae97e09 100644 --- a/drivers/net/fm/memac_phy.c +++ b/drivers/net/fm/memac_phy.c @@ -64,7 +64,7 @@ static int memac_wait_until_done(struct memac_mdio_controller *regs) { unsigned int timeout = MAX_NUM_RETRIES; - while ((memac_in_32(®s->mdio_data) & MDIO_DATA_BSY) && timeout--) + while ((memac_in_32(®s->mdio_stat) & MDIO_STAT_BSY) && timeout--) ; if (!timeout) { diff --git a/include/fsl_memac.h b/include/fsl_memac.h index d067f1511c..6ac1e558b9 100644 --- a/include/fsl_memac.h +++ b/include/fsl_memac.h @@ -254,7 +254,6 @@ struct memac_mdio_controller { #define MDIO_CTL_READ (1 << 15) #define MDIO_DATA(x) (x & 0xffff) -#define MDIO_DATA_BSY (1 << 31) struct fsl_enet_mac; -- 2.34.1