mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-03 14:34:27 -05:00 
			
		
		
		
	This is required for managed operation of the SFP ports on
the Ten64 (LS1088A) and other boards.
The two issues resolved are:
- Validation of 10G SFP link modes fail as Linux did not
  consider the equivalence of modes like XFI, 10GBase-R
- Fix a locking issue that prevented the system rebooting
  when SFP ports were controlled by the SFP driver.
Please note, these patches are replaced by upstream ones
in 6.x, see: commit 61ec9a8154 ("armvirt: add SFP support
patches for NXP Layerscape DPAA2 platforms") in OpenWrt for
the relevant patches.
Signed-off-by: Mathew McBride <matt@traverse.com.au>
		
	
			
		
			
				
	
	
		
			35 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From c314138bd045e050432158ab021160de3ba51c5e Mon Sep 17 00:00:00 2001
 | 
						|
From: Russell King <rmk+kernel@armlinux.org.uk>
 | 
						|
Date: Thu, 30 Jan 2020 22:42:38 +0000
 | 
						|
Subject: [PATCH 2/4] net: dpaa2-mac: add support for more 10G modes
 | 
						|
 | 
						|
Phylink documentation says:
 | 
						|
 * Note that the PHY may be able to transform from one connection
 | 
						|
 * technology to another, so, eg, don't clear 1000BaseX just
 | 
						|
 * because the MAC is unable to BaseX mode. This is more about
 | 
						|
 * clearing unsupported speeds and duplex settings. The port modes
 | 
						|
 * should not be cleared; phylink_set_port_modes() will help with this.
 | 
						|
 | 
						|
So add the missing 10G modes.
 | 
						|
 | 
						|
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
 | 
						|
---
 | 
						|
 drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c | 6 ++++++
 | 
						|
 1 file changed, 6 insertions(+)
 | 
						|
 | 
						|
--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c
 | 
						|
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c
 | 
						|
@@ -140,6 +140,12 @@ static void dpaa2_mac_validate(struct ph
 | 
						|
 	case PHY_INTERFACE_MODE_10GBASER:
 | 
						|
 	case PHY_INTERFACE_MODE_USXGMII:
 | 
						|
 		phylink_set(mask, 10000baseT_Full);
 | 
						|
+		phylink_set(mask, 10000baseKR_Full);
 | 
						|
+		phylink_set(mask, 10000baseCR_Full);
 | 
						|
+		phylink_set(mask, 10000baseSR_Full);
 | 
						|
+		phylink_set(mask, 10000baseLR_Full);
 | 
						|
+		phylink_set(mask, 10000baseLRM_Full);
 | 
						|
+		phylink_set(mask, 10000baseER_Full);
 | 
						|
 		if (state->interface == PHY_INTERFACE_MODE_10GBASER)
 | 
						|
 			break;
 | 
						|
 		phylink_set(mask, 5000baseT_Full);
 |