From: Greg Kroah-Hartman Date: Tue, 22 Aug 2023 07:10:31 +0000 (+0200) Subject: 4.14-stable patches X-Git-Tag: v6.4.12~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=bf976da09df302a614f62310bceceee07d95e1a7;p=thirdparty%2Fkernel%2Fstable-queue.git 4.14-stable patches added patches: net-phy-broadcom-stub-c45-read-write-for-54810.patch --- diff --git a/queue-4.14/net-phy-broadcom-stub-c45-read-write-for-54810.patch b/queue-4.14/net-phy-broadcom-stub-c45-read-write-for-54810.patch new file mode 100644 index 00000000000..9f5151e9715 --- /dev/null +++ b/queue-4.14/net-phy-broadcom-stub-c45-read-write-for-54810.patch @@ -0,0 +1,55 @@ +From 096516d092d54604d590827d05b1022c8f326639 Mon Sep 17 00:00:00 2001 +From: Justin Chen +Date: Sat, 12 Aug 2023 21:41:47 -0700 +Subject: net: phy: broadcom: stub c45 read/write for 54810 + +From: Justin Chen + +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 +Reviewed-by: Florian Fainelli +Link: https://lore.kernel.org/r/1691901708-28650-1-git-send-email-justin.chen@broadcom.com +Signed-off-by: Jakub Kicinski +[florian: resolved conflicts in 4.14] +Signed-off-by: Florian Fainelli +Signed-off-by: Greg Kroah-Hartman +--- + drivers/net/phy/broadcom.c | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +--- a/drivers/net/phy/broadcom.c ++++ b/drivers/net/phy/broadcom.c +@@ -403,6 +403,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; +@@ -650,6 +661,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, + .read_status = genphy_read_status, diff --git a/queue-4.14/series b/queue-4.14/series index 886f3bb901d..94a94ae4785 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -37,3 +37,4 @@ asoc-rt5665-add-missed-regulator_bulk_disable.patch af_unix-fix-null-ptr-deref-in-unix_stream_sendpage.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