12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- From d69cdb1cc4e3f717f63910cb2c40ca26f912ea34 Mon Sep 17 00:00:00 2001
- From: Phil Elwell <[email protected]>
- 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 <[email protected]>
- ---
- 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)
- {
- @@ -3440,6 +3443,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);
|