mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-30 21:44:27 -04:00 
			
		
		
		
	Backport upstream support for 100Base-FX, 100Base-LX, 100Base-PX and 100Base-BX10 SFP modules. This is a prerequisite for the Globalscale MOCHAbin hybrid 1G SFP/Copper support backporting. Signed-off-by: Robert Marko <robert.marko@sartura.hr>
		
			
				
	
	
		
			57 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From b1ae3587d16a8c8fc9453e147c8708d6f006ffbb Mon Sep 17 00:00:00 2001
 | |
| From: Bjarni Jonasson <bjarni.jonasson@microchip.com>
 | |
| Date: Wed, 13 Jan 2021 12:56:25 +0100
 | |
| Subject: [PATCH] net: phy: Add 100 base-x mode
 | |
| 
 | |
| Sparx-5 supports this mode and it is missing in the PHY core.
 | |
| 
 | |
| Signed-off-by: Bjarni Jonasson <bjarni.jonasson@microchip.com>
 | |
| Reviewed-by: Russell King <rmk+kernel@armlinux.org.uk>
 | |
| Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 | |
| ---
 | |
|  Documentation/networking/phy.rst | 5 +++++
 | |
|  include/linux/phy.h              | 4 ++++
 | |
|  2 files changed, 9 insertions(+)
 | |
| 
 | |
| --- a/Documentation/networking/phy.rst
 | |
| +++ b/Documentation/networking/phy.rst
 | |
| @@ -286,6 +286,11 @@ Some of the interface modes are describe
 | |
|      Note: due to legacy usage, some 10GBASE-R usage incorrectly makes
 | |
|      use of this definition.
 | |
|  
 | |
| +``PHY_INTERFACE_MODE_100BASEX``
 | |
| +    This defines IEEE 802.3 Clause 24.  The link operates at a fixed data
 | |
| +    rate of 125Mpbs using a 4B/5B encoding scheme, resulting in an underlying
 | |
| +    data rate of 100Mpbs.
 | |
| +
 | |
|  Pause frames / flow control
 | |
|  ===========================
 | |
|  
 | |
| --- a/include/linux/phy.h
 | |
| +++ b/include/linux/phy.h
 | |
| @@ -104,6 +104,7 @@ extern const int phy_10gbit_features_arr
 | |
|   * @PHY_INTERFACE_MODE_MOCA: Multimedia over Coax
 | |
|   * @PHY_INTERFACE_MODE_QSGMII: Quad SGMII
 | |
|   * @PHY_INTERFACE_MODE_TRGMII: Turbo RGMII
 | |
| + * @PHY_INTERFACE_MODE_100BASEX: 100 BaseX
 | |
|   * @PHY_INTERFACE_MODE_1000BASEX: 1000 BaseX
 | |
|   * @PHY_INTERFACE_MODE_2500BASEX: 2500 BaseX
 | |
|   * @PHY_INTERFACE_MODE_RXAUI: Reduced XAUI
 | |
| @@ -135,6 +136,7 @@ typedef enum {
 | |
|  	PHY_INTERFACE_MODE_MOCA,
 | |
|  	PHY_INTERFACE_MODE_QSGMII,
 | |
|  	PHY_INTERFACE_MODE_TRGMII,
 | |
| +	PHY_INTERFACE_MODE_100BASEX,
 | |
|  	PHY_INTERFACE_MODE_1000BASEX,
 | |
|  	PHY_INTERFACE_MODE_2500BASEX,
 | |
|  	PHY_INTERFACE_MODE_RXAUI,
 | |
| @@ -217,6 +219,8 @@ static inline const char *phy_modes(phy_
 | |
|  		return "usxgmii";
 | |
|  	case PHY_INTERFACE_MODE_10GKR:
 | |
|  		return "10gbase-kr";
 | |
| +	case PHY_INTERFACE_MODE_100BASEX:
 | |
| +		return "100base-x";
 | |
|  	default:
 | |
|  		return "unknown";
 | |
|  	}
 |