Re: [PATCH net-next 3/5] net: phy: realtek: reunify C22 and C45 drivers
From: Heiner Kallweit <hkallweit1@gmail.com>
Date: 2026-01-10 14:28:38
Also in:
lkml
On 1/9/2026 2:25 PM, Daniel Golle wrote:
On Fri, Jan 09, 2026 at 02:18:14PM +0100, Andrew Lunn wrote:quoted
On Fri, Jan 09, 2026 at 03:03:33AM +0000, Daniel Golle wrote:quoted
Reunify the split C22/C45 drivers for the RTL8221B-VB-CG 2.5Gbps and RTL8221B-VM-CG 2.5Gbps PHYs back into a single driver. This is possible now by using all the driver operations previously used by the C45 driver, as transparent access to all MMDs including MDIO_MMD_VEND2 is now possible also over Clause-22 MDIO. Signed-off-by: Daniel Golle <daniel@makrotopia.org> --- drivers/net/phy/realtek/realtek_main.c | 72 ++++++-------------------- 1 file changed, 16 insertions(+), 56 deletions(-)diff --git a/drivers/net/phy/realtek/realtek_main.c b/drivers/net/phy/realtek/realtek_main.c index 886694ff995f6..d07d60bc1ce34 100644 --- a/drivers/net/phy/realtek/realtek_main.c +++ b/drivers/net/phy/realtek/realtek_main.c@@ -1879,28 +1879,18 @@ static int rtl8221b_match_phy_device(struct phy_device *phydev, return phydev->phy_id == RTL_8221B && rtlgen_supports_mmd(phydev); } -static int rtl8221b_vb_cg_c22_match_phy_device(struct phy_device *phydev, - const struct phy_driver *phydrv) +static int rtl8221b_vb_cg_match_phy_device(struct phy_device *phydev, + const struct phy_driver *phydrv) { - return rtlgen_is_c45_match(phydev, RTL_8221B_VB_CG, false); + return rtlgen_is_c45_match(phydev, RTL_8221B_VB_CG, true) || + rtlgen_is_c45_match(phydev, RTL_8221B_VB_CG, false);Are there any calls left to rtlgen_is_c45_match() which don't || true and false? If not, maybe add another patch which removes the bool parameter?At this point it is still used by --- static int rtl8251b_c45_match_phy_device(struct phy_device *phydev, const struct phy_driver *phydrv) { return rtlgen_is_c45_match(phydev, RTL_8251B, true); } --- This 5G PHY supposedly supports only C45 mode, I don't know if it actually needs the .match_phy_device at all or could also simply use PHY_ID_MATCH_EXACT(RTL_8251B) instead, I don't have any device using it so I can't test that.
Yes, match_phy_device is needed. This PHY ID also matches the internal PHY of RTL8126. And RTL8126 doesn't support speaking c45 to its internal PHY.