From: Greg Kroah-Hartman Date: Mon, 26 Jul 2021 09:27:42 +0000 (+0200) Subject: 4.14-stable patches X-Git-Tag: v4.4.277~34 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c85d590525dfe9f55d96b21c594c8b478159c236;p=thirdparty%2Fkernel%2Fstable-queue.git 4.14-stable patches added patches: net-bcmgenet-ensure-ext_energy_det_mask-is-clear.patch --- diff --git a/queue-4.14/net-bcmgenet-ensure-ext_energy_det_mask-is-clear.patch b/queue-4.14/net-bcmgenet-ensure-ext_energy_det_mask-is-clear.patch new file mode 100644 index 00000000000..cde81d76323 --- /dev/null +++ b/queue-4.14/net-bcmgenet-ensure-ext_energy_det_mask-is-clear.patch @@ -0,0 +1,91 @@ +From 5a3c680aa2c12c90c44af383fe6882a39875ab81 Mon Sep 17 00:00:00 2001 +From: Doug Berger +Date: Tue, 29 Jun 2021 17:14:19 -0700 +Subject: net: bcmgenet: ensure EXT_ENERGY_DET_MASK is clear + +From: Doug Berger + +commit 5a3c680aa2c12c90c44af383fe6882a39875ab81 upstream. + +Setting the EXT_ENERGY_DET_MASK bit allows the port energy detection +logic of the internal PHY to prevent the system from sleeping. Some +internal PHYs will report that energy is detected when the network +interface is closed which can prevent the system from going to sleep +if WoL is enabled when the interface is brought down. + +Since the driver does not support waking the system on this logic, +this commit clears the bit whenever the internal PHY is powered up +and the other logic for manipulating the bit is removed since it +serves no useful function. + +Fixes: 1c1008c793fa ("net: bcmgenet: add main driver file") +Signed-off-by: Doug Berger +Acked-by: Florian Fainelli +Signed-off-by: David S. Miller +Signed-off-by: Greg Kroah-Hartman +--- + drivers/net/ethernet/broadcom/genet/bcmgenet.c | 16 ++-------------- + drivers/net/ethernet/broadcom/genet/bcmgenet_wol.c | 6 ------ + 2 files changed, 2 insertions(+), 20 deletions(-) + +--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c ++++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c +@@ -1158,7 +1158,8 @@ static void bcmgenet_power_up(struct bcm + + switch (mode) { + case GENET_POWER_PASSIVE: +- reg &= ~(EXT_PWR_DOWN_DLL | EXT_PWR_DOWN_BIAS); ++ reg &= ~(EXT_PWR_DOWN_DLL | EXT_PWR_DOWN_BIAS | ++ EXT_ENERGY_DET_MASK); + if (GENET_IS_V5(priv)) { + reg &= ~(EXT_PWR_DOWN_PHY_EN | + EXT_PWR_DOWN_PHY_RD | +@@ -2913,12 +2914,6 @@ static int bcmgenet_open(struct net_devi + + bcmgenet_set_hw_addr(priv, dev->dev_addr); + +- if (priv->internal_phy) { +- reg = bcmgenet_ext_readl(priv, EXT_EXT_PWR_MGMT); +- reg |= EXT_ENERGY_DET_MASK; +- bcmgenet_ext_writel(priv, reg, EXT_EXT_PWR_MGMT); +- } +- + /* Disable RX/TX DMA and flush TX queues */ + dma_ctrl = bcmgenet_dma_disable(priv); + +@@ -3676,7 +3671,6 @@ static int bcmgenet_resume(struct device + struct bcmgenet_priv *priv = netdev_priv(dev); + unsigned long dma_ctrl; + int ret; +- u32 reg; + + if (!netif_running(dev)) + return 0; +@@ -3712,12 +3706,6 @@ static int bcmgenet_resume(struct device + + bcmgenet_set_hw_addr(priv, dev->dev_addr); + +- if (priv->internal_phy) { +- reg = bcmgenet_ext_readl(priv, EXT_EXT_PWR_MGMT); +- reg |= EXT_ENERGY_DET_MASK; +- bcmgenet_ext_writel(priv, reg, EXT_EXT_PWR_MGMT); +- } +- + if (priv->wolopts) + bcmgenet_power_up(priv, GENET_POWER_WOL_MAGIC); + +--- a/drivers/net/ethernet/broadcom/genet/bcmgenet_wol.c ++++ b/drivers/net/ethernet/broadcom/genet/bcmgenet_wol.c +@@ -166,12 +166,6 @@ int bcmgenet_wol_power_down_cfg(struct b + reg |= CMD_RX_EN; + bcmgenet_umac_writel(priv, reg, UMAC_CMD); + +- if (priv->hw_params->flags & GENET_HAS_EXT) { +- reg = bcmgenet_ext_readl(priv, EXT_EXT_PWR_MGMT); +- reg &= ~EXT_ENERGY_DET_MASK; +- bcmgenet_ext_writel(priv, reg, EXT_EXT_PWR_MGMT); +- } +- + return 0; + } + diff --git a/queue-4.14/series b/queue-4.14/series index 723c402d59a..5280bd768fc 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -74,3 +74,4 @@ media-ngene-fix-out-of-bounds-bug-in-ngene_command_config_free_buf.patch ixgbe-fix-packet-corruption-due-to-missing-dma-sync.patch selftest-use-mmap-instead-of-posix_memalign-to-allocate-memory.patch drm-return-enotty-for-non-drm-ioctls.patch +net-bcmgenet-ensure-ext_energy_det_mask-is-clear.patch