From patchwork Sun Jan 2 17:34:18 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Markus Koch X-Patchwork-Id: 1574867 X-Patchwork-Delegate: rfried.dev@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JSVHS36M0z9t0Z for ; Tue, 4 Jan 2022 09:08:02 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 08F2C80378; Mon, 3 Jan 2022 23:07:55 +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 4CB648304F; Sun, 2 Jan 2022 18:36:09 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: * X-Spam-Status: No, score=1.4 required=5.0 tests=BAYES_00,RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL,RCVD_IN_SBL_CSS,SPF_HELO_NONE,SPF_NONE autolearn=no autolearn_force=no version=3.4.2 Received: from mout.kundenserver.de (mout.kundenserver.de [217.72.192.73]) (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 B125E82F5E for ; Sun, 2 Jan 2022 18:36:06 +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 (mreue106 [212.227.15.183]) with ESMTPSA (Nemesis) id 1M1INQ-1n6pfH3yPa-002mDa; Sun, 02 Jan 2022 18:36:02 +0100 From: Markus Koch To: joe.hershberger@ni.com, rfried.dev@gmail.com Cc: u-boot@lists.denx.de, Markus Koch Subject: [PATCH] net: fsl_mdio: Fix busy flag polling register Date: Sun, 2 Jan 2022 18:34:18 +0100 Message-Id: <20220102173416.140968-1-markus@notsyncing.net> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Provags-ID: V03:K1:m1YRm5q3QP1adLsiK8cMSGPUfy/sPf6fVWEjmy8dDFWM/pVHmZt RIGX3Vs2MpiMhmaatqk55UImYYm4WYwlgPx8rRwy/qWC3L9UCpePTTiPD4AGditE7UkfRC2 h40kRKbvQp6/vFLudHcrjb+Snp0/iaEcCZYmL0AmtWQII58tph+umC+UgGgEhsqLkL3H6Uv uobi8LOUFb/fdfP1JbbNg== X-UI-Out-Filterresults: notjunk:1;V03:K0:mTtP/KhUgRA=:GPTBeTC4tL8WHLMuHgU9n3 nPBIvyIAfiB7OPijw3KZ/jZiN5E6UKdiP/bXaMFFiI8DtqMNUTVdg4+AEp4UWxDuZMiusocmS eJ6cePZ4AAlzGMurXDtcASwGG5GMzaAVjXxYNYfg5I72lLKw0WcspL95N/bnRGAaTJiEIQ97d nNE0BG0cXa0wLe24vX/og5aguJu5asqlYcjO2QUgXeD7DiEw6jn3zilLZ72HV+yRUQ0tJvLyM J8sdyuOaYs700WFJ6UvacxiBfRg5PiIa91M8CyOhIlKhZF1VwXx+180TKXM0hrP/fgHBZlGbF 97QuRDSlZJE74cyP3sIVJMW9qk5t2mSHrwpIUpa4auTQy50jkLfCUlubphaNm0kYByJNK2ocL wUtv3cJdZlZ47uX8DjvAriBqlKAf4qJJ06kCAkGrdXvpdGc+NC8bEmlUPYP+AkKp70zU082Ie chwCvU3AT0CXfuX1up701IfETHqedMfOvDrG9DilXUnjPn60sldIN/lfrbwPqGp72DV5fIoRl TTYSF50GGsH3QIKHRds0viJbN8nJhMiPyKri5M+7k7NqKahYIULUojv12tGw6TNOWt0k0qmF1 i7b90AYyhnOZ2aixAel1o063D+QOnbNENmaQxpjKPhPdvq/5hWPXSVl8JwkWO9h4c8xtZe2Td 1dko8YwD+fNTk8ABDP2fB88RYMg90ZXRY2CvKjg+6MnvrQ1d7JXglQD1C+u6rH1pb27ClNXqZ lAEaHfFiTNfyJEP3 X-Mailman-Approved-At: Mon, 03 Jan 2022 23:07:54 +0100 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 (we call it CTL) 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 Reviewed-by: Ramon Fried --- I only stumbled over this section of code while looking at something else, but I'm surprised this even works the way it is now. Maybe it's luck. Sadly I have not yet had the chance to test this change on actual hardware, and I'm not sure I will anytime soon, so I'm asking whether there's anyone who could compile and run my code to see whether MDIO transactions work as expected. Thanks! Markus drivers/net/fm/memac_phy.c | 2 +- include/fsl_memac.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/fm/memac_phy.c b/drivers/net/fm/memac_phy.c index 72b500a6d1..0af6e83a8f 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_ctl) & MDIO_CTL_BSY) && timeout--) ; if (!timeout) { diff --git a/include/fsl_memac.h b/include/fsl_memac.h index d067f1511c..d973fc0a5e 100644 --- a/include/fsl_memac.h +++ b/include/fsl_memac.h @@ -246,6 +246,7 @@ struct memac_mdio_controller { #define MDIO_STAT_HOLD_15_CLK (7 << 2) #define MDIO_STAT_NEG (1 << 23) +#define MDIO_CTL_BSY (1 << 0) #define MDIO_CTL_DEV_ADDR(x) (x & 0x1f) #define MDIO_CTL_PORT_ADDR(x) ((x & 0x1f) << 5) #define MDIO_CTL_PRE_DIS (1 << 10) @@ -254,7 +255,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;