emac: add missing support of 10mbit in emac/rgmii
authorIvan Mikhaylov <ivan@ru.ibm.com>
Mon, 26 May 2014 18:24:17 +0000 (22:24 +0400)
committerDavid S. Miller <davem@davemloft.net>
Fri, 30 May 2014 23:29:57 +0000 (16:29 -0700)
In chips of emac/rgmii b'000' for 0/1 channel isn't suitable which
resulted in non working network interface in this mode.

Signed-off-by: Ivan Mikhaylov <ivan@ru.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ibm/emac/rgmii.c

index 4fb2f96da23bb32f4709baddbff77cc7880e49d4..a01182cce9655f6eb64345de79a6c879adaeea43 100644 (file)
@@ -45,6 +45,7 @@
 
 /* RGMIIx_SSR */
 #define RGMII_SSR_MASK(idx)    (0x7 << ((idx) * 8))
+#define RGMII_SSR_10(idx)      (0x1 << ((idx) * 8))
 #define RGMII_SSR_100(idx)     (0x2 << ((idx) * 8))
 #define RGMII_SSR_1000(idx)    (0x4 << ((idx) * 8))
 
@@ -139,6 +140,8 @@ void rgmii_set_speed(struct platform_device *ofdev, int input, int speed)
                ssr |= RGMII_SSR_1000(input);
        else if (speed == SPEED_100)
                ssr |= RGMII_SSR_100(input);
+       else if (speed == SPEED_10)
+               ssr |= RGMII_SSR_10(input);
 
        out_be32(&p->ssr, ssr);