mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-07-13 13:36:59 +08:00

Import patch "net: phy: realtek: mark existing MMDs as present" When using Clause-45 mode to access RealTek RTL8221B 2.5G PHYs some versions of the PHY fail to report the MMDs present on the PHY. Mark MMDs PMAPMD, PCS and AN which are always existing according to the datasheet as present to fix that. Signed-off-by: Daniel Golle <daniel@makrotopia.org> Tested-by: Aleksander Jan Bajkowski <olek2@wp.pl> Tested-by: Juan Pedro Paredes Caballero <juanpedro.paredes@gmail.com>
28 lines
1.0 KiB
Diff
28 lines
1.0 KiB
Diff
From: Daniel Golle <daniel@makrotopia.org>
|
|
Date: Thu, 30 Jan 2025 05:38:31 +0000
|
|
Subject: [PATCH] net: phy: realtek: disable MDIO broadcast
|
|
|
|
RealTek's PHYs by default also listen on MDIO address 0 which is defined
|
|
as broadcast address. This can lead to problems if there is an actual PHY
|
|
(such as MT7981 built-in PHY) present at this address, as accessing that
|
|
PHY may then confuse the RealTek PHY.
|
|
|
|
Disabled listening on the MDIO broadcast address to avoid such problems.
|
|
|
|
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
|
---
|
|
--- a/drivers/net/phy/realtek/realtek_main.c
|
|
+++ b/drivers/net/phy/realtek/realtek_main.c
|
|
@@ -849,6 +849,11 @@ static int rtl822xb_config_init(struct p
|
|
phydev->host_interfaces) ||
|
|
phydev->interface == PHY_INTERFACE_MODE_SGMII;
|
|
|
|
+ /* disable listening on MDIO broadcast address (0) */
|
|
+ ret = phy_clear_bits_mmd(phydev, MDIO_MMD_VEND2, 0xa430, BIT(13));
|
|
+ if (ret < 0)
|
|
+ return ret;
|
|
+
|
|
/* fill in possible interfaces */
|
|
__assign_bit(PHY_INTERFACE_MODE_2500BASEX, phydev->possible_interfaces,
|
|
has_2500);
|