]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.19-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 22 Aug 2023 07:10:32 +0000 (09:10 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 22 Aug 2023 07:10:32 +0000 (09:10 +0200)
added patches:
net-phy-broadcom-stub-c45-read-write-for-54810.patch

queue-4.19/net-phy-broadcom-stub-c45-read-write-for-54810.patch [new file with mode: 0644]
queue-4.19/series

diff --git a/queue-4.19/net-phy-broadcom-stub-c45-read-write-for-54810.patch b/queue-4.19/net-phy-broadcom-stub-c45-read-write-for-54810.patch
new file mode 100644 (file)
index 0000000..be7d8e5
--- /dev/null
@@ -0,0 +1,55 @@
+From 096516d092d54604d590827d05b1022c8f326639 Mon Sep 17 00:00:00 2001
+From: Justin Chen <justin.chen@broadcom.com>
+Date: Sat, 12 Aug 2023 21:41:47 -0700
+Subject: net: phy: broadcom: stub c45 read/write for 54810
+
+From: Justin Chen <justin.chen@broadcom.com>
+
+commit 096516d092d54604d590827d05b1022c8f326639 upstream.
+
+The 54810 does not support c45. The mmd_phy_indirect accesses return
+arbirtary values leading to odd behavior like saying it supports EEE
+when it doesn't. We also see that reading/writing these non-existent
+MMD registers leads to phy instability in some cases.
+
+Fixes: b14995ac2527 ("net: phy: broadcom: Add BCM54810 PHY entry")
+Signed-off-by: Justin Chen <justin.chen@broadcom.com>
+Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
+Link: https://lore.kernel.org/r/1691901708-28650-1-git-send-email-justin.chen@broadcom.com
+Signed-off-by: Jakub Kicinski <kuba@kernel.org>
+[florian: resolved conflicts in 4.19]
+Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/phy/broadcom.c |   13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+--- a/drivers/net/phy/broadcom.c
++++ b/drivers/net/phy/broadcom.c
+@@ -421,6 +421,17 @@ static int bcm5482_read_status(struct ph
+       return err;
+ }
++static int bcm54810_read_mmd(struct phy_device *phydev, int devnum, u16 regnum)
++{
++      return -EOPNOTSUPP;
++}
++
++static int bcm54810_write_mmd(struct phy_device *phydev, int devnum, u16 regnum,
++                            u16 val)
++{
++      return -EOPNOTSUPP;
++}
++
+ static int bcm5481_config_aneg(struct phy_device *phydev)
+ {
+       struct device_node *np = phydev->mdio.dev.of_node;
+@@ -684,6 +695,8 @@ static struct phy_driver broadcom_driver
+       .name           = "Broadcom BCM54810",
+       .features       = PHY_GBIT_FEATURES,
+       .flags          = PHY_HAS_INTERRUPT,
++      .read_mmd       = bcm54810_read_mmd,
++      .write_mmd      = bcm54810_write_mmd,
+       .config_init    = bcm54xx_config_init,
+       .config_aneg    = bcm5481_config_aneg,
+       .ack_interrupt  = bcm_phy_ack_intr,
index ec058d407bc5435b9cf64953bce95f7fed110801..f7ea138c5b351c4257982699753f00cdbf7f4ee6 100644 (file)
@@ -83,3 +83,4 @@ virtio-net-set-queues-after-driver_ok.patch
 bus-ti-sysc-flush-posted-write-on-enable-before-reset.patch
 net-fix-the-rto-timer-retransmitting-skb-every-1ms-if-linear-option-is-enabled.patch
 net-xfrm-amend-xfrma_sec_ctx-nla_policy-structure.patch
+net-phy-broadcom-stub-c45-read-write-for-54810.patch