mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-23 15:32:33 +00:00
5da5958f5a
All patches automatically rebased. Build system: x86_64 Build-tested: bcm2711/RPi4B Run-tested: bcm2711/RPi4B Signed-off-by: John Audia <therealgraysky@proton.me>
47 lines
1.5 KiB
Diff
47 lines
1.5 KiB
Diff
From d69cdb1cc4e3f717f63910cb2c40ca26f912ea34 Mon Sep 17 00:00:00 2001
|
|
From: Phil Elwell <phil@raspberrypi.com>
|
|
Date: Wed, 14 Dec 2022 15:00:51 +0000
|
|
Subject: [PATCH] net: bcmgenet: Add 'eee' module parameter
|
|
|
|
On some switches, having EEE enabled causes the link to become
|
|
unstable. With this patch, adding 'genet.eee=N' to the kernel command
|
|
line will cause EEE to be disabled on the link.
|
|
|
|
See: https://github.com/raspberrypi/linux/issues/4289
|
|
|
|
Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
|
---
|
|
drivers/net/ethernet/broadcom/genet/bcmgenet.c | 14 ++++++++++++++
|
|
1 file changed, 14 insertions(+)
|
|
|
|
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
|
|
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
|
|
@@ -70,6 +70,9 @@ static void bcmgenet_set_rx_mode(struct
|
|
static bool skip_umac_reset = false;
|
|
module_param(skip_umac_reset, bool, 0444);
|
|
MODULE_PARM_DESC(skip_umac_reset, "Skip UMAC reset step");
|
|
+static bool eee = true;
|
|
+module_param(eee, bool, 0444);
|
|
+MODULE_PARM_DESC(eee, "Enable EEE (default Y)");
|
|
|
|
static inline void bcmgenet_writel(u32 value, void __iomem *offset)
|
|
{
|
|
@@ -3438,6 +3441,17 @@ static int bcmgenet_open(struct net_devi
|
|
|
|
bcmgenet_phy_pause_set(dev, priv->rx_pause, priv->tx_pause);
|
|
|
|
+ if (!eee) {
|
|
+ struct ethtool_eee eee_data;
|
|
+
|
|
+ ret = bcmgenet_get_eee(dev, &eee_data);
|
|
+ if (ret == 0) {
|
|
+ eee_data.eee_enabled = 0;
|
|
+ bcmgenet_set_eee(dev, &eee_data);
|
|
+ netdev_warn(dev, "EEE disabled\n");
|
|
+ }
|
|
+ }
|
|
+
|
|
bcmgenet_netif_start(dev);
|
|
|
|
netif_tx_start_all_queues(dev);
|