staging: octeon: repair "fixed-link" support
[linux-2.6-microblaze.git] / drivers / staging / octeon / ethernet.c
index 204f0b1..5dea6e9 100644 (file)
@@ -13,6 +13,7 @@
 #include <linux/phy.h>
 #include <linux/slab.h>
 #include <linux/interrupt.h>
+#include <linux/of_mdio.h>
 #include <linux/of_net.h>
 #include <linux/if_ether.h>
 #include <linux/if_vlan.h>
@@ -892,6 +893,14 @@ static int cvm_oct_probe(struct platform_device *pdev)
                                break;
                        }
 
+                       if (priv->of_node && of_phy_is_fixed_link(priv->of_node)) {
+                               if (of_phy_register_fixed_link(priv->of_node)) {
+                                       netdev_err(dev, "Failed to register fixed link for interface %d, port %d\n",
+                                                  interface, priv->port);
+                                       dev->netdev_ops = NULL;
+                               }
+                       }
+
                        if (!dev->netdev_ops) {
                                free_netdev(dev);
                        } else if (register_netdev(dev) < 0) {