mirror of
				https://github.com/Ysurac/openmptcprouter.git
				synced 2025-03-09 15:40:20 +00:00 
			
		
		
		
	Fix RPI5 support
This commit is contained in:
		
							parent
							
								
									57beb2ec60
								
							
						
					
					
						commit
						3743692973
					
				
					 1017 changed files with 232368 additions and 4124 deletions
				
			
		| 
						 | 
				
			
			@ -0,0 +1,46 @@
 | 
			
		|||
From 400e2e81a85f265ba6012c458ebd04b1bef6f9be 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);
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue