From: Greg Kroah-Hartman Date: Mon, 26 Jul 2021 09:27:41 +0000 (+0200) Subject: 4.9-stable patches X-Git-Tag: v4.4.277~35 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b22f7ba3e10272ceab1cd28c518f236ce1063016;p=thirdparty%2Fkernel%2Fstable-queue.git 4.9-stable patches added patches: net-bcmgenet-ensure-ext_energy_det_mask-is-clear.patch --- diff --git a/queue-4.9/net-bcmgenet-ensure-ext_energy_det_mask-is-clear.patch b/queue-4.9/net-bcmgenet-ensure-ext_energy_det_mask-is-clear.patch new file mode 100644 index 00000000000..d33b3cc3cae --- /dev/null +++ b/queue-4.9/net-bcmgenet-ensure-ext_energy_det_mask-is-clear.patch @@ -0,0 +1,90 @@ +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 | 15 +-------------- + drivers/net/ethernet/broadcom/genet/bcmgenet_wol.c | 6 ------ + 2 files changed, 1 insertion(+), 20 deletions(-) + +--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c ++++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c +@@ -1094,7 +1094,7 @@ static void bcmgenet_power_up(struct bcm + switch (mode) { + case GENET_POWER_PASSIVE: + reg &= ~(EXT_PWR_DOWN_DLL | EXT_PWR_DOWN_PHY | +- EXT_PWR_DOWN_BIAS); ++ EXT_PWR_DOWN_BIAS | EXT_ENERGY_DET_MASK); + /* fallthrough */ + case GENET_POWER_CABLE_SENSE: + /* enable APD */ +@@ -2821,12 +2821,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); + +@@ -3516,7 +3510,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; +@@ -3551,12 +3544,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 +@@ -167,12 +167,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); +- } +- + /* Enable the MPD interrupt */ + cpu_mask_clear = UMAC_IRQ_MPD_R; + diff --git a/queue-4.9/series b/queue-4.9/series index 994f92766c8..5de62b96297 100644 --- a/queue-4.9/series +++ b/queue-4.9/series @@ -54,3 +54,4 @@ usb-serial-cp210x-fix-comments-for-ge-cs1000.patch usb-serial-cp210x-add-id-for-cel-em3588-usb-zigbee-stick.patch tracing-fix-bug-in-rb_per_cpu_empty-that-might-cause-deadloop.patch media-ngene-fix-out-of-bounds-bug-in-ngene_command_config_free_buf.patch +net-bcmgenet-ensure-ext_energy_det_mask-is-clear.patch