diff options
Diffstat (limited to 'drivers/net/tsec.c')
| -rw-r--r-- | drivers/net/tsec.c | 77 | 
1 files changed, 34 insertions, 43 deletions
| diff --git a/drivers/net/tsec.c b/drivers/net/tsec.c index 67441d4ea..76902bcd8 100644 --- a/drivers/net/tsec.c +++ b/drivers/net/tsec.c @@ -488,50 +488,41 @@ uint mii_BCM54xx_wirespeed(uint mii_reg, struct tsec_private *priv)   */  uint mii_parse_BCM54xx_sr(uint mii_reg, struct tsec_private *priv)  { +	/* If there is no link, speed and duplex don't matter */ +	if (!priv->link) +		return 0; -	switch((mii_reg & MIIM_BCM54xx_AUXSTATUS_LINKMODE_MASK) >> MIIM_BCM54xx_AUXSTATUS_LINKMODE_SHIFT){ - -		case 1: -			printf("Enet starting in 10BT/HD\n"); -			priv->duplexity = 0; -			priv->speed = 10; -			break; - -		case 2: -			printf("Enet starting in 10BT/FD\n"); -			priv->duplexity = 1; -			priv->speed = 10; -			break; - -		case 3: -			printf("Enet starting in 100BT/HD\n"); -			priv->duplexity = 0; -			priv->speed = 100; -			break; - -		case 5: -			printf("Enet starting in 100BT/FD\n"); -			priv->duplexity = 1; -			priv->speed = 100; -			break; - -		case 6: -			printf("Enet starting in 1000BT/HD\n"); -			priv->duplexity = 0; -			priv->speed = 1000; -			break; - -		case 7: -			printf("Enet starting in 1000BT/FD\n"); -			priv->duplexity = 1; -			priv->speed = 1000; -			break; - -		default: -			printf("Auto-neg error, defaulting to 10BT/HD\n"); -			priv->duplexity = 0; -			priv->speed = 10; -			break; +	switch ((mii_reg & MIIM_BCM54xx_AUXSTATUS_LINKMODE_MASK) >> +		MIIM_BCM54xx_AUXSTATUS_LINKMODE_SHIFT) { +	case 1: +		priv->duplexity = 0; +		priv->speed = 10; +		break; +	case 2: +		priv->duplexity = 1; +		priv->speed = 10; +		break; +	case 3: +		priv->duplexity = 0; +		priv->speed = 100; +		break; +	case 5: +		priv->duplexity = 1; +		priv->speed = 100; +		break; +	case 6: +		priv->duplexity = 0; +		priv->speed = 1000; +		break; +	case 7: +		priv->duplexity = 1; +		priv->speed = 1000; +		break; +	default: +		printf("Auto-neg error, defaulting to 10BT/HD\n"); +		priv->duplexity = 0; +		priv->speed = 10; +		break;  	}  	return 0; |