From: Zhiyuan Wan <kmlinuxm@gmail.com>
To: andrew@lunn.ch
Cc: kuba@kernel.org, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org, willy.liu@realtek.com,
Zhiyuan Wan <kmlinuxm@gmail.com>, Yuki Lee <febrieac@outlook.com>
Subject: [PATCH v3 1/2] net: phy: realtek: disable broadcast address feature of rtl8211f
Date: Tue, 3 Dec 2024 12:26:31 +0800 [thread overview]
Message-ID: <20241203042631.2061737-1-kmlinuxm@gmail.com> (raw)
In-Reply-To: <cb8b5a36-fe5c-4b10-ac28-5f31f95262ab@lunn.ch>
This feature is enabled defaultly after a reset of this transceiver.
When this feature is enabled, the phy not only responds to the
configuration PHY address by pin states on board, but also responds
to address 0, the optional broadcast address of the MDIO bus.
But some MDIO device like mt7530 switch chip (integrated in mt7621
SoC), also use address 0 to configure a specific port, when use
mt7530 and rtl8211f together, it usually causes address conflict,
leads to the port of RTL8211FS stops working.
This patch disables broadcast address feature of rtl8211f, and
returns -ENODEV if using broadcast address (0) as phy address.
Reviewed-by: Yuki Lee <febrieac@outlook.com>
Signed-off-by: Zhiyuan Wan <kmlinuxm@gmail.com>
---
drivers/net/phy/realtek.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/drivers/net/phy/realtek.c b/drivers/net/phy/realtek.c
index f65d7f1f3..8a38b02ad 100644
--- a/drivers/net/phy/realtek.c
+++ b/drivers/net/phy/realtek.c
@@ -31,6 +31,7 @@
#define RTL8211F_PHYCR1 0x18
#define RTL8211F_PHYCR2 0x19
#define RTL8211F_INSR 0x1d
+#define RTL8211F_PHYAD0_EN BIT(13)
#define RTL8211F_LEDCR 0x10
#define RTL8211F_LEDCR_MODE BIT(15)
@@ -139,6 +140,17 @@ static int rtl821x_probe(struct phy_device *phydev)
return dev_err_probe(dev, PTR_ERR(priv->clk),
"failed to get phy clock\n");
+ dev_dbg(dev, "disabling MDIO address 0 for this phy");
+ ret = phy_modify_paged_changed(phydev, 0xa43, RTL8211F_PHYCR1,
+ RTL8211F_PHYAD0_EN, 0);
+ if (ret < 0) {
+ dev_err(dev, "disabling MDIO address 0 failed: %pe\n",
+ ERR_PTR(ret));
+ }
+ /* Don't allow using broadcast address as PHY address */
+ if (phydev->mdio.addr == 0)
+ return -ENODEV;
+
ret = phy_read_paged(phydev, 0xa43, RTL8211F_PHYCR1);
if (ret < 0)
return ret;
--
2.30.2
next prev parent reply other threads:[~2024-12-03 4:26 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-02 19:50 [PATCH 1/2] net: phy: realtek: add combo mode support for RTL8211FS Zhiyuan Wan
2024-12-02 19:50 ` [PATCH 2/2] net: phy: realtek: add dt property to disable broadcast PHY address Zhiyuan Wan
2024-12-03 0:04 ` Andrew Lunn
2024-12-03 3:46 ` [PATCH v2 1/2] net: phy: realtek: disable broadcast address feature of rtl8211f Zhiyuan Wan
2024-12-03 3:58 ` Andrew Lunn
2024-12-03 4:26 ` Zhiyuan Wan [this message]
2024-12-03 6:50 ` [PATCH v3 " Heiner Kallweit
2024-12-03 7:18 ` [PATCH net-next " Zhiyuan Wan
2024-12-03 7:38 ` Heiner Kallweit
2024-12-03 8:35 ` Zhiyuan Wan
2024-12-03 9:52 ` Heiner Kallweit
2024-12-02 23:52 ` [PATCH 1/2] net: phy: realtek: add combo mode support for RTL8211FS Andrew Lunn
2024-12-03 3:08 ` 万致远
2024-12-03 3:53 ` Andrew Lunn
2024-12-03 4:42 ` 万致远
2024-12-03 4:44 ` 万致远
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20241203042631.2061737-1-kmlinuxm@gmail.com \
--to=kmlinuxm@gmail.com \
--cc=andrew@lunn.ch \
--cc=febrieac@outlook.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=willy.liu@realtek.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).