mirror of
				https://github.com/torvalds/linux.git
				synced 2025-10-31 16:48:26 +02:00 
			
		
		
		
	net: dsa: fix older DSA drivers using phylink
Older DSA drivers that do not provide an dsa_ops adjust_link method end
up using phylink. Unfortunately, a recent phylink change that requires
its supported_interfaces bitmap to be filled breaks these drivers
because the bitmap remains empty.
Rather than fixing each driver individually, fix it in the core code so
we have a sensible set of defaults.
Reported-by: Sergei Antonov <saproj@gmail.com>
Fixes: de5c9bf40c ("net: phylink: require supported_interfaces to be filled")
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
Tested-by: Vladimir Oltean <olteanv@gmail.com> # dsa_loop
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
Link: https://lore.kernel.org/r/E1qOflM-001AEz-D3@rmk-PC.armlinux.org.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
			
			
This commit is contained in:
		
							parent
							
								
									d73ef2d69c
								
							
						
					
					
						commit
						9945c1fb03
					
				
					 1 changed files with 8 additions and 1 deletions
				
			
		|  | @ -1727,8 +1727,15 @@ int dsa_port_phylink_create(struct dsa_port *dp) | |||
| 	    ds->ops->phylink_mac_an_restart) | ||||
| 		dp->pl_config.legacy_pre_march2020 = true; | ||||
| 
 | ||||
| 	if (ds->ops->phylink_get_caps) | ||||
| 	if (ds->ops->phylink_get_caps) { | ||||
| 		ds->ops->phylink_get_caps(ds, dp->index, &dp->pl_config); | ||||
| 	} else { | ||||
| 		/* For legacy drivers */ | ||||
| 		__set_bit(PHY_INTERFACE_MODE_INTERNAL, | ||||
| 			  dp->pl_config.supported_interfaces); | ||||
| 		__set_bit(PHY_INTERFACE_MODE_GMII, | ||||
| 			  dp->pl_config.supported_interfaces); | ||||
| 	} | ||||
| 
 | ||||
| 	pl = phylink_create(&dp->pl_config, of_fwnode_handle(dp->dn), | ||||
| 			    mode, &dsa_port_phylink_mac_ops); | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Russell King (Oracle)
						Russell King (Oracle)