realtek: update the tree to the latest refactored version
[openwrt/openwrt.git] / target / linux / realtek / patches-5.4 / 704-drivers-net-phy-eee-support-for-rtl838x.patch
diff --git a/target/linux/realtek/patches-5.4/704-drivers-net-phy-eee-support-for-rtl838x.patch b/target/linux/realtek/patches-5.4/704-drivers-net-phy-eee-support-for-rtl838x.patch
new file mode 100644 (file)
index 0000000..7743147
--- /dev/null
@@ -0,0 +1,41 @@
+--- a/drivers/net/phy/phylink.c
++++ b/drivers/net/phy/phylink.c
+@@ -1242,6 +1242,11 @@ int phylink_ethtool_ksettings_set(struct
+       /* If we have a PHY, configure the phy */
+       if (pl->phydev) {
++              if (pl->phydev->drv->get_port && pl->phydev->drv->set_port) {
++                      if(pl->phydev->drv->get_port(pl->phydev) != kset->base.port) {
++                              pl->phydev->drv->set_port(pl->phydev, kset->base.port);
++                      }
++              }
+               ret = phy_ethtool_ksettings_set(pl->phydev, &our_kset);
+               if (ret)
+                       return ret;
+@@ -1420,8 +1425,11 @@ int phylink_ethtool_get_eee(struct phyli
+       ASSERT_RTNL();
+-      if (pl->phydev)
++      if (pl->phydev) {
++              if (pl->phydev->drv->get_eee)
++                      return pl->phydev->drv->get_eee(pl->phydev, eee);
+               ret = phy_ethtool_get_eee(pl->phydev, eee);
++      }
+       return ret;
+ }
+@@ -1438,9 +1446,11 @@ int phylink_ethtool_set_eee(struct phyli
+       ASSERT_RTNL();
+-      if (pl->phydev)
++      if (pl->phydev) {
++              if (pl->phydev->drv->set_eee)
++                      return pl->phydev->drv->set_eee(pl->phydev, eee);
+               ret = phy_ethtool_set_eee(pl->phydev, eee);
+-
++      }
+       return ret;
+ }
+ EXPORT_SYMBOL_GPL(phylink_ethtool_set_eee);