mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 01:49:46 +00:00
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>
This commit is contained in:
@@ -68,6 +68,9 @@ static void bcmgenet_set_rx_mode(struct net_device *dev);
|
||||
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)
|
||||
{
|
||||
@@ -3371,6 +3374,17 @@ static int bcmgenet_open(struct net_device *dev)
|
||||
|
||||
bcmgenet_phy_pause_set(dev, priv->rx_pause, priv->tx_pause);
|
||||
|
||||
if (!eee) {
|
||||
struct ethtool_keee 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);
|
||||
|
||||
Reference in New Issue
Block a user