summaryrefslogtreecommitdiff
path: root/target/linux/generic/backport-5.10/775-v5.18-01-net-phy-at803x-move-page-selection-fix-to-config_init.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic/backport-5.10/775-v5.18-01-net-phy-at803x-move-page-selection-fix-to-config_init.patch')
-rw-r--r--target/linux/generic/backport-5.10/775-v5.18-01-net-phy-at803x-move-page-selection-fix-to-config_init.patch81
1 files changed, 0 insertions, 81 deletions
diff --git a/target/linux/generic/backport-5.10/775-v5.18-01-net-phy-at803x-move-page-selection-fix-to-config_init.patch b/target/linux/generic/backport-5.10/775-v5.18-01-net-phy-at803x-move-page-selection-fix-to-config_init.patch
deleted file mode 100644
index 5d1246893b..0000000000
--- a/target/linux/generic/backport-5.10/775-v5.18-01-net-phy-at803x-move-page-selection-fix-to-config_init.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From 4f3a00c7f5b2cfe4e127fd3fe49b55e1b318c01f Mon Sep 17 00:00:00 2001
-From: Robert Hancock <robert.hancock@calian.com>
-Date: Tue, 25 Jan 2022 10:54:08 -0600
-Subject: [PATCH] net: phy: at803x: move page selection fix to config_init
-
-The fix to select the copper page on AR8031 was being done in the probe
-function rather than config_init, so it would not be redone after resume
-from suspend. Move this to config_init so it is always redone when
-needed.
-
-Fixes: c329e5afb42f ("net: phy: at803x: select correct page on config init")
-Signed-off-by: Robert Hancock <robert.hancock@calian.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
----
- drivers/net/phy/at803x.c | 40 ++++++++++++++++------------------------
- 1 file changed, 16 insertions(+), 24 deletions(-)
-
---- a/drivers/net/phy/at803x.c
-+++ b/drivers/net/phy/at803x.c
-@@ -651,25 +651,7 @@ static int at803x_probe(struct phy_devic
- return ret;
- }
-
-- /* Some bootloaders leave the fiber page selected.
-- * Switch to the copper page, as otherwise we read
-- * the PHY capabilities from the fiber side.
-- */
-- if (at803x_match_phy_id(phydev, ATH8031_PHY_ID)) {
-- phy_lock_mdio_bus(phydev);
-- ret = at803x_write_page(phydev, AT803X_PAGE_COPPER);
-- phy_unlock_mdio_bus(phydev);
-- if (ret)
-- goto err;
-- }
--
- return 0;
--
--err:
-- if (priv->vddio)
-- regulator_disable(priv->vddio);
--
-- return ret;
- }
-
- static void at803x_remove(struct phy_device *phydev)
-@@ -745,6 +727,22 @@ static int at803x_config_init(struct phy
- {
- int ret;
-
-+ if (phydev->drv->phy_id == ATH8031_PHY_ID) {
-+ /* Some bootloaders leave the fiber page selected.
-+ * Switch to the copper page, as otherwise we read
-+ * the PHY capabilities from the fiber side.
-+ */
-+ phy_lock_mdio_bus(phydev);
-+ ret = at803x_write_page(phydev, AT803X_PAGE_COPPER);
-+ phy_unlock_mdio_bus(phydev);
-+ if (ret)
-+ return ret;
-+
-+ ret = at8031_pll_config(phydev);
-+ if (ret < 0)
-+ return ret;
-+ }
-+
- /* The RX and TX delay default is:
- * after HW reset: RX delay enabled and TX delay disabled
- * after SW reset: RX delay enabled, while TX delay retains the
-@@ -770,12 +768,6 @@ static int at803x_config_init(struct phy
- if (ret < 0)
- return ret;
-
-- if (at803x_match_phy_id(phydev, ATH8031_PHY_ID)) {
-- ret = at8031_pll_config(phydev);
-- if (ret < 0)
-- return ret;
-- }
--
- return 0;
- }
-