ar8216: introduce enable_eee swconfig attribute to control 802.3az EEE per port
[15.05/openwrt.git] / target / linux / generic / files / drivers / net / phy / ar8216.c
index 2fd4425..99d0e82 100644 (file)
@@ -1041,6 +1041,7 @@ int
 ar8xxx_sw_reset_switch(struct switch_dev *dev)
 {
        struct ar8xxx_priv *priv = swdev_to_ar8xxx(dev);
+       const struct ar8xxx_chip *chip = priv->chip;
        int i;
 
        mutex_lock(&priv->reg_mutex);
@@ -1052,18 +1053,18 @@ ar8xxx_sw_reset_switch(struct switch_dev *dev)
 
        /* Configure all ports */
        for (i = 0; i < dev->ports; i++)
-               priv->chip->init_port(priv, i);
+               chip->init_port(priv, i);
 
        priv->mirror_rx = false;
        priv->mirror_tx = false;
        priv->source_port = 0;
        priv->monitor_port = 0;
 
-       priv->chip->init_globals(priv);
+       chip->init_globals(priv);
 
        mutex_unlock(&priv->reg_mutex);
 
-       return ar8xxx_sw_hw_apply(dev);
+       return chip->sw_hw_apply(dev);
 }
 
 int
@@ -1194,7 +1195,7 @@ ar8xxx_sw_get_mirror_source_port(struct switch_dev *dev,
        return 0;
 }
 
-static int
+int
 ar8xxx_sw_set_port_reset_mib(struct switch_dev *dev,
                             const struct switch_attr *attr,
                             struct switch_val *val)
@@ -1224,7 +1225,7 @@ unlock:
        return ret;
 }
 
-static int
+int
 ar8xxx_sw_get_port_mib(struct switch_dev *dev,
                       const struct switch_attr *attr,
                       struct switch_val *val)
@@ -1390,6 +1391,7 @@ static const struct ar8xxx_chip ar8216_chip = {
        .vtu_flush = ar8216_vtu_flush,
        .vtu_load_vlan = ar8216_vtu_load_vlan,
        .set_mirror_regs = ar8216_set_mirror_regs,
+       .sw_hw_apply = ar8xxx_sw_hw_apply,
 
        .num_mibs = ARRAY_SIZE(ar8216_mibs),
        .mib_decs = ar8216_mibs,
@@ -1416,6 +1418,7 @@ static const struct ar8xxx_chip ar8236_chip = {
        .vtu_flush = ar8216_vtu_flush,
        .vtu_load_vlan = ar8216_vtu_load_vlan,
        .set_mirror_regs = ar8216_set_mirror_regs,
+       .sw_hw_apply = ar8xxx_sw_hw_apply,
 
        .num_mibs = ARRAY_SIZE(ar8236_mibs),
        .mib_decs = ar8236_mibs,
@@ -1442,6 +1445,7 @@ static const struct ar8xxx_chip ar8316_chip = {
        .vtu_flush = ar8216_vtu_flush,
        .vtu_load_vlan = ar8216_vtu_load_vlan,
        .set_mirror_regs = ar8216_set_mirror_regs,
+       .sw_hw_apply = ar8xxx_sw_hw_apply,
 
        .num_mibs = ARRAY_SIZE(ar8236_mibs),
        .mib_decs = ar8236_mibs,