summaryrefslogtreecommitdiff
path: root/target/linux/generic/pending-4.9/704-phy-no-genphy-soft-reset.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic/pending-4.9/704-phy-no-genphy-soft-reset.patch')
-rw-r--r--target/linux/generic/pending-4.9/704-phy-no-genphy-soft-reset.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/target/linux/generic/pending-4.9/704-phy-no-genphy-soft-reset.patch b/target/linux/generic/pending-4.9/704-phy-no-genphy-soft-reset.patch
new file mode 100644
index 0000000..a434001
--- /dev/null
+++ b/target/linux/generic/pending-4.9/704-phy-no-genphy-soft-reset.patch
@@ -0,0 +1,42 @@
+From: Felix Fietkau <nbd@nbd.name>
+Subject: net: phy: disable soft-reset for generic PHY devices to avoid accidentally clearing preinitialized state
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ drivers/net/phy/phy_device.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
+index c37d3a27e372..069f7ee3e65c 100644
+--- a/drivers/net/phy/phy_device.c
++++ b/drivers/net/phy/phy_device.c
+@@ -1482,7 +1482,7 @@ int genphy_config_init(struct phy_device *phydev)
+ return 0;
+ }
+
+-static int gen10g_soft_reset(struct phy_device *phydev)
++static int no_soft_reset(struct phy_device *phydev)
+ {
+ /* Do nothing for now */
+ return 0;
+@@ -1721,7 +1721,7 @@ static struct phy_driver genphy_driver[] = {
+ .phy_id = 0xffffffff,
+ .phy_id_mask = 0xffffffff,
+ .name = "Generic PHY",
+- .soft_reset = genphy_soft_reset,
++ .soft_reset = no_soft_reset,
+ .config_init = genphy_config_init,
+ .features = PHY_GBIT_FEATURES | SUPPORTED_MII |
+ SUPPORTED_AUI | SUPPORTED_FIBRE |
+@@ -1735,7 +1735,7 @@ static struct phy_driver genphy_driver[] = {
+ .phy_id = 0xffffffff,
+ .phy_id_mask = 0xffffffff,
+ .name = "Generic 10G PHY",
+- .soft_reset = gen10g_soft_reset,
++ .soft_reset = no_soft_reset,
+ .config_init = gen10g_config_init,
+ .features = 0,
+ .config_aneg = gen10g_config_aneg,
+--
+2.11.0
+