diff options
Diffstat (limited to 'drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c')
| -rw-r--r-- | drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c | 12 | 
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c b/drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c index cdd926832e2..9d3748361a1 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c @@ -32,10 +32,15 @@  #include <asm/io.h>  #include "dwmac1000.h" -static void dwmac1000_core_init(void __iomem *ioaddr) +static void dwmac1000_core_init(void __iomem *ioaddr, int mtu)  {  	u32 value = readl(ioaddr + GMAC_CONTROL);  	value |= GMAC_CORE_INIT; +	if (mtu > 1500) +		value |= GMAC_CONTROL_2K; +	if (mtu > 2000) +		value |= GMAC_CONTROL_JE; +  	writel(value, ioaddr + GMAC_CONTROL);  	/* Mask GMAC interrupts */ @@ -315,11 +320,8 @@ static void dwmac1000_set_eee_timer(void __iomem *ioaddr, int ls, int tw)  static void dwmac1000_ctrl_ane(void __iomem *ioaddr, bool restart)  { -	u32 value; - -	value = readl(ioaddr + GMAC_AN_CTRL);  	/* auto negotiation enable and External Loopback enable */ -	value = GMAC_AN_CTRL_ANE | GMAC_AN_CTRL_ELE; +	u32 value = GMAC_AN_CTRL_ANE | GMAC_AN_CTRL_ELE;  	if (restart)  		value |= GMAC_AN_CTRL_RAN;  | 
