From: Bjørn Mork Date: Wed, 5 Feb 2025 07:37:51 +0000 (+0100) Subject: realtek: sfp: add mdio bus only for sfps with a phy X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=ccf54ca6732ed6b70d0039cf4c17d7c832aa5d06;p=openwrt%2Fstaging%2Fstintel.git realtek: sfp: add mdio bus only for sfps with a phy The SMBus patch broke the logic and caused the driver to always register an mdio bus, regardless of the sfp. Restore original logic. Signed-off-by: Bjørn Mork Link: https://github.com/openwrt/openwrt/pull/17950 Signed-off-by: Sander Vanheule --- diff --git a/target/linux/realtek/patches-6.6/714-net-phy-sfp-add-support-for-SMBus.patch b/target/linux/realtek/patches-6.6/714-net-phy-sfp-add-support-for-SMBus.patch index 76e2d76506..cb9a1da7e6 100644 --- a/target/linux/realtek/patches-6.6/714-net-phy-sfp-add-support-for-SMBus.patch +++ b/target/linux/realtek/patches-6.6/714-net-phy-sfp-add-support-for-SMBus.patch @@ -107,21 +107,20 @@ Signed-off-by: Antoine Tenart static void sfp_i2c_mdiobus_destroy(struct sfp *sfp) { mdiobus_unregister(sfp->i2c_mii); -@@ -1871,8 +1948,15 @@ static void sfp_sm_fault(struct sfp *sfp +@@ -1875,9 +1952,15 @@ static void sfp_sm_fault(struct sfp *sfp static int sfp_sm_add_mdio_bus(struct sfp *sfp) { - if (sfp->mdio_protocol != MDIO_I2C_NONE) -- return sfp_i2c_mdiobus_create(sfp); -+ if (i2c_check_functionality(sfp->i2c, I2C_FUNC_I2C)) { -+ if (sfp->mdio_protocol != MDIO_I2C_NONE) -+ return sfp_i2c_mdiobus_create(sfp); -+ ++ if (sfp->mdio_protocol == MDIO_I2C_NONE) + return 0; -+ } + ++ if (i2c_check_functionality(sfp->i2c, I2C_FUNC_I2C)) + return sfp_i2c_mdiobus_create(sfp); + + if (i2c_check_functionality(sfp->i2c, I2C_FUNC_SMBUS_BYTE_DATA)) + return sfp_sm_mdiobus_create(sfp); - ++ return 0; } +