From a09496b15171042be896b10cbc5c1a825a59c428 Mon Sep 17 00:00:00 2001 From: nbd Date: Sat, 20 Dec 2014 15:26:38 +0000 Subject: [PATCH] kernel: disable soft-reset for generic PHY devices to avoid accidentally clearing preinitialized state Signed-off-by: Felix Fietkau git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43757 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../704-phy-no-genphy-soft-reset.patch | 29 ++++++++++++++++++++++ .../704-phy-no-genphy-soft-reset.patch | 29 ++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 target/linux/generic/patches-3.14/704-phy-no-genphy-soft-reset.patch create mode 100644 target/linux/generic/patches-3.18/704-phy-no-genphy-soft-reset.patch diff --git a/target/linux/generic/patches-3.14/704-phy-no-genphy-soft-reset.patch b/target/linux/generic/patches-3.14/704-phy-no-genphy-soft-reset.patch new file mode 100644 index 0000000000..8e83a773b3 --- /dev/null +++ b/target/linux/generic/patches-3.14/704-phy-no-genphy-soft-reset.patch @@ -0,0 +1,29 @@ +--- a/drivers/net/phy/phy_device.c ++++ b/drivers/net/phy/phy_device.c +@@ -1102,7 +1102,7 @@ static int genphy_config_init(struct phy + 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; +@@ -1282,7 +1282,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 = 0, + .config_aneg = genphy_config_aneg, +@@ -1294,7 +1294,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, diff --git a/target/linux/generic/patches-3.18/704-phy-no-genphy-soft-reset.patch b/target/linux/generic/patches-3.18/704-phy-no-genphy-soft-reset.patch new file mode 100644 index 0000000000..c2554158e3 --- /dev/null +++ b/target/linux/generic/patches-3.18/704-phy-no-genphy-soft-reset.patch @@ -0,0 +1,29 @@ +--- a/drivers/net/phy/phy_device.c ++++ b/drivers/net/phy/phy_device.c +@@ -1132,7 +1132,7 @@ int genphy_config_init(struct phy_device + 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; +@@ -1346,7 +1346,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 | +@@ -1361,7 +1361,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