kernel: 5.10: backport at803x QCA83xx phy support improvements
[openwrt/openwrt.git] / target / linux / generic / backport-5.10 / 795-v5.16-02-net-phy-at803x-add-resume-suspend-function-to-qca83x.patch
diff --git a/target/linux/generic/backport-5.10/795-v5.16-02-net-phy-at803x-add-resume-suspend-function-to-qca83x.patch b/target/linux/generic/backport-5.10/795-v5.16-02-net-phy-at803x-add-resume-suspend-function-to-qca83x.patch
new file mode 100644 (file)
index 0000000..be24fd5
--- /dev/null
@@ -0,0 +1,45 @@
+From 15b9df4ece17d084f14eb0ca1cf05f2ad497e425 Mon Sep 17 00:00:00 2001
+From: Ansuel Smith <ansuelsmth@gmail.com>
+Date: Sun, 19 Sep 2021 18:28:16 +0200
+Subject: net: phy: at803x: add resume/suspend function to qca83xx phy
+
+Add resume/suspend function to qca83xx internal phy.
+We can't use the at803x generic function as the documentation lacks of
+any support for WoL regs.
+
+Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
+Reviewed-by: Andrew Lunn <andrew@lunn.ch>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/phy/at803x.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+--- a/drivers/net/phy/at803x.c
++++ b/drivers/net/phy/at803x.c
+@@ -1329,6 +1329,8 @@ static struct phy_driver at803x_driver[]
+       .get_sset_count = at803x_get_sset_count,
+       .get_strings = at803x_get_strings,
+       .get_stats = at803x_get_stats,
++      .suspend                = genphy_suspend,
++      .resume                 = genphy_resume,
+ }, {
+       /* QCA8327-A from switch QCA8327-AL1A */
+       .phy_id = QCA8327_A_PHY_ID,
+@@ -1342,6 +1344,8 @@ static struct phy_driver at803x_driver[]
+       .get_sset_count = at803x_get_sset_count,
+       .get_strings = at803x_get_strings,
+       .get_stats = at803x_get_stats,
++      .suspend                = genphy_suspend,
++      .resume                 = genphy_resume,
+ }, {
+       /* QCA8327-B from switch QCA8327-BL1A */
+       .phy_id = QCA8327_B_PHY_ID,
+@@ -1355,6 +1359,8 @@ static struct phy_driver at803x_driver[]
+       .get_sset_count = at803x_get_sset_count,
+       .get_strings = at803x_get_strings,
+       .get_stats = at803x_get_stats,
++      .suspend                = genphy_suspend,
++      .resume                 = genphy_resume,
+ }, };
+ module_phy_driver(at803x_driver);