ar8216: add 802.3az EEE info to swconfig get_link attribute
[15.05/openwrt.git] / target / linux / generic / files / drivers / net / phy / swconfig.c
index c30deb9..b0ba90d 100644 (file)
@@ -167,12 +167,14 @@ swconfig_get_link(struct switch_dev *dev, const struct switch_attr *attr,
 
        if (link.link)
                len = snprintf(dev->buf, sizeof(dev->buf),
-                              "port:%d link:up speed:%s %s-duplex %s%s%s",
+                              "port:%d link:up speed:%s %s-duplex %s%s%s%s%s",
                               val->port_vlan,
                               swconfig_speed_str(link.speed),
                               link.duplex ? "full" : "half",
                               link.tx_flow ? "txflow " : "",
                               link.rx_flow ?   "rxflow " : "",
+                              link.eee & ADVERTISED_100baseT_Full ? "eee100 " : "",
+                              link.eee & ADVERTISED_1000baseT_Full ? "eee1000 " : "",
                               link.aneg ? "auto" : "");
        else
                len = snprintf(dev->buf, sizeof(dev->buf), "port:%d link:down",
@@ -1079,7 +1081,7 @@ register_switch(struct switch_dev *dev, struct net_device *netdev)
        /* fill device name */
        snprintf(dev->devname, IFNAMSIZ, SWCONFIG_DEVNAME, i);
 
-       list_add(&dev->dev_list, &swdevs);
+       list_add_tail(&dev->dev_list, &swdevs);
        swconfig_unlock();
 
        err = swconfig_create_led_trigger(dev);
@@ -1107,7 +1109,10 @@ EXPORT_SYMBOL_GPL(unregister_switch);
 static int __init
 swconfig_init(void)
 {
-       int i, err;
+       int err;
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,13,0))
+       int i;
+#endif
 
        INIT_LIST_HEAD(&swdevs);
        
@@ -1121,17 +1126,17 @@ swconfig_init(void)
                if (err)
                        goto unregister;
        }
-
        return 0;
-#else
-       err = genl_register_family_with_ops(&switch_fam, swconfig_ops);
-       if (err)
-               goto unregister;
-#endif
 
 unregister:
        genl_unregister_family(&switch_fam);
        return err;
+#else
+       err = genl_register_family_with_ops(&switch_fam, swconfig_ops);
+       if (err)
+               return err;
+       return 0;
+#endif
 }
 
 static void __exit