]> git.sur5r.net Git - u-boot/blobdiff - drivers/net/tsec.c
tsec: Clean up Broadcom PHY status parsing
[u-boot] / drivers / net / tsec.c
index 67441d4ea7aa3cafe268b93c540366bb10e2f8a2..76902bcd83505d2262d7f45737375d26156f2b1f 100644 (file)
@@ -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;