mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 05:54:26 -04:00 
			
		
		
		
	Refreshed all patches. Compile-tested on: cns3xxx, imx6, x86_64 Runtime-tested on: cns3xxx, imx6, x86_64 Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| --- a/drivers/net/phy/at803x.c
 | |
| +++ b/drivers/net/phy/at803x.c
 | |
| @@ -354,6 +354,14 @@ static int at803x_config_init(struct phy
 | |
|  				AT803X_DEBUG_TX_CLK_DLY_EN, 0);
 | |
|  	}
 | |
|  
 | |
| +#ifdef CONFIG_OF_MDIO
 | |
| +	if (phydev->mdio.dev.of_node &&
 | |
| +		of_property_read_bool(phydev->mdio.dev.of_node,
 | |
| +				      "at803x-disable-smarteee")) {
 | |
| +		at803x_disable_smarteee(phydev);
 | |
| +	}
 | |
| +#endif
 | |
| +
 | |
|  	return 0;
 | |
|  }
 | |
|  
 | |
| @@ -392,6 +400,7 @@ static void at803x_link_change_notify(st
 | |
|  {
 | |
|  	struct at803x_priv *priv = phydev->priv;
 | |
|  	struct at803x_platform_data *pdata;
 | |
| +	u8 fixup_rgmii_tx_delay = 0;
 | |
|  	pdata = dev_get_platdata(&phydev->mdio.dev);
 | |
|  
 | |
|  	/*
 | |
| @@ -421,8 +430,19 @@ static void at803x_link_change_notify(st
 | |
|  	} else {
 | |
|  		priv->phy_reset = false;
 | |
|  	}
 | |
| -	if (pdata && pdata->fixup_rgmii_tx_delay &&
 | |
| -	    phydev->speed != priv->prev_speed) {
 | |
| +
 | |
| +	if (pdata && pdata->fixup_rgmii_tx_delay)
 | |
| +		fixup_rgmii_tx_delay = 1;
 | |
| +
 | |
| +#ifdef CONFIG_OF_MDIO
 | |
| +	if (phydev->mdio.dev.of_node &&
 | |
| +		of_property_read_bool(phydev->mdio.dev.of_node,
 | |
| +				      "at803x-fixup-rgmii-tx-delay")) {
 | |
| +			fixup_rgmii_tx_delay = 1;
 | |
| +	}
 | |
| +#endif
 | |
| +
 | |
| +	if (fixup_rgmii_tx_delay && phydev->speed != priv->prev_speed) {
 | |
|  		switch (phydev->speed) {
 | |
|  		case SPEED_10:
 | |
|  		case SPEED_100:
 |