mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 14:04:26 -04:00 
			
		
		
		
	Let's pick a bunch of useful phylink changes which allow us to keep drivers in sync with mainline Linux. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
		
			
				
	
	
		
			66 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From 4bb7aac70b5d8a4bddf4ee0791b834f9f56883d2 Mon Sep 17 00:00:00 2001
 | |
| From: Arnd Bergmann <arnd@arndb.de>
 | |
| Date: Thu, 20 Apr 2023 10:45:51 +0200
 | |
| Subject: [PATCH] net: phy: fix circular LEDS_CLASS dependencies
 | |
| 
 | |
| The CONFIG_PHYLIB symbol is selected by a number of device drivers that
 | |
| need PHY support, but it now has a dependency on CONFIG_LEDS_CLASS,
 | |
| which may not be enabled, causing build failures.
 | |
| 
 | |
| Avoid the risk of missing and circular dependencies by guarding the
 | |
| phylib LED support itself in another Kconfig symbol that can only be
 | |
| enabled if the dependency is met.
 | |
| 
 | |
| This could be made a hidden symbol and always enabled when both CONFIG_OF
 | |
| and CONFIG_LEDS_CLASS are reachable from the phylib, but there may be an
 | |
| advantage in having users see this option when they have a misconfigured
 | |
| kernel without built-in LED support.
 | |
| 
 | |
| Fixes: 01e5b728e9e4 ("net: phy: Add a binding for PHY LEDs")
 | |
| Signed-off-by: Arnd Bergmann <arnd@arndb.de>
 | |
| Reviewed-by: Andrew Lunn <andrew@lunn.ch>
 | |
| Link: https://lore.kernel.org/r/20230420084624.3005701-1-arnd@kernel.org
 | |
| Signed-off-by: Jakub Kicinski <kuba@kernel.org>
 | |
| ---
 | |
|  drivers/net/phy/Kconfig      | 9 ++++++++-
 | |
|  drivers/net/phy/phy_device.c | 3 ++-
 | |
|  2 files changed, 10 insertions(+), 2 deletions(-)
 | |
| 
 | |
| --- a/drivers/net/phy/Kconfig
 | |
| +++ b/drivers/net/phy/Kconfig
 | |
| @@ -18,7 +18,6 @@ menuconfig PHYLIB
 | |
|  	depends on NETDEVICES
 | |
|  	select MDIO_DEVICE
 | |
|  	select MDIO_DEVRES
 | |
| -	depends on LEDS_CLASS || LEDS_CLASS=n
 | |
|  	help
 | |
|  	  Ethernet controllers are usually attached to PHY
 | |
|  	  devices.  This option provides infrastructure for
 | |
| @@ -45,6 +44,14 @@ config LED_TRIGGER_PHY
 | |
|  		<Speed in megabits>Mbps OR <Speed in gigabits>Gbps OR link
 | |
|  		for any speed known to the PHY.
 | |
|  
 | |
| +config PHYLIB_LEDS
 | |
| +	bool "Support probing LEDs from device tree"
 | |
| +	depends on LEDS_CLASS=y || LEDS_CLASS=PHYLIB
 | |
| +	depends on OF
 | |
| +	default y
 | |
| +	help
 | |
| +	  When LED class support is enabled, phylib can automatically
 | |
| +	  probe LED setting from device tree.
 | |
|  
 | |
|  config FIXED_PHY
 | |
|  	tristate "MDIO Bus/PHY emulation with fixed speed/link PHYs"
 | |
| --- a/drivers/net/phy/phy_device.c
 | |
| +++ b/drivers/net/phy/phy_device.c
 | |
| @@ -3314,7 +3314,8 @@ static int phy_probe(struct device *dev)
 | |
|  	/* Get the LEDs from the device tree, and instantiate standard
 | |
|  	 * LEDs for them.
 | |
|  	 */
 | |
| -	err = of_phy_leds(phydev);
 | |
| +	if (IS_ENABLED(CONFIG_PHYLIB_LEDS))
 | |
| +		err = of_phy_leds(phydev);
 | |
|  
 | |
|  out:
 | |
|  	/* Re-assert the reset signal on error */
 |