summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjørn Mork2025-02-05 07:37:51 +0000
committerSander Vanheule2025-02-25 19:53:30 +0000
commitccf54ca6732ed6b70d0039cf4c17d7c832aa5d06 (patch)
treeb58e838877775a37427e666372934094c8441896
parent736229ba991ba69c6fdc7334353a43d9b1da1bdd (diff)
downloadopenwrt-ccf54ca6732ed6b70d0039cf4c17d7c832aa5d06.tar.gz
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 <bjorn@mork.no> Link: https://github.com/openwrt/openwrt/pull/17950 Signed-off-by: Sander Vanheule <sander@svanheule.net>
-rw-r--r--target/linux/realtek/patches-6.6/714-net-phy-sfp-add-support-for-SMBus.patch15
1 files changed, 7 insertions, 8 deletions
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 <antoine.tenart@bootlin.com>
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;
}
+