|
@@ -810,56 +810,18 @@ static void mv88e6xxx_get_regs(struct dsa_switch *ds, int port,
|
|
mutex_unlock(&chip->reg_lock);
|
|
mutex_unlock(&chip->reg_lock);
|
|
}
|
|
}
|
|
|
|
|
|
-static int mv88e6xxx_energy_detect_read(struct mv88e6xxx_chip *chip, int port,
|
|
|
|
- struct ethtool_eee *eee)
|
|
|
|
|
|
+static int mv88e6xxx_get_mac_eee(struct dsa_switch *ds, int port,
|
|
|
|
+ struct ethtool_eee *e)
|
|
{
|
|
{
|
|
- int err;
|
|
|
|
-
|
|
|
|
- if (!chip->info->ops->phy_energy_detect_read)
|
|
|
|
- return -EOPNOTSUPP;
|
|
|
|
-
|
|
|
|
- /* assign eee->eee_enabled and eee->tx_lpi_enabled */
|
|
|
|
- err = chip->info->ops->phy_energy_detect_read(chip, port, eee);
|
|
|
|
- if (err)
|
|
|
|
- return err;
|
|
|
|
-
|
|
|
|
- /* assign eee->eee_active */
|
|
|
|
- return mv88e6xxx_port_status_eee(chip, port, eee);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-static int mv88e6xxx_energy_detect_write(struct mv88e6xxx_chip *chip, int port,
|
|
|
|
- struct ethtool_eee *eee)
|
|
|
|
-{
|
|
|
|
- if (!chip->info->ops->phy_energy_detect_write)
|
|
|
|
- return -EOPNOTSUPP;
|
|
|
|
-
|
|
|
|
- return chip->info->ops->phy_energy_detect_write(chip, port, eee);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-static int mv88e6xxx_get_eee(struct dsa_switch *ds, int port,
|
|
|
|
- struct ethtool_eee *e)
|
|
|
|
-{
|
|
|
|
- struct mv88e6xxx_chip *chip = ds->priv;
|
|
|
|
- int err;
|
|
|
|
-
|
|
|
|
- mutex_lock(&chip->reg_lock);
|
|
|
|
- err = mv88e6xxx_energy_detect_read(chip, port, e);
|
|
|
|
- mutex_unlock(&chip->reg_lock);
|
|
|
|
-
|
|
|
|
- return err;
|
|
|
|
|
|
+ /* Nothing to do on the port's MAC */
|
|
|
|
+ return 0;
|
|
}
|
|
}
|
|
|
|
|
|
-static int mv88e6xxx_set_eee(struct dsa_switch *ds, int port,
|
|
|
|
- struct phy_device *phydev, struct ethtool_eee *e)
|
|
|
|
|
|
+static int mv88e6xxx_set_mac_eee(struct dsa_switch *ds, int port,
|
|
|
|
+ struct ethtool_eee *e)
|
|
{
|
|
{
|
|
- struct mv88e6xxx_chip *chip = ds->priv;
|
|
|
|
- int err;
|
|
|
|
-
|
|
|
|
- mutex_lock(&chip->reg_lock);
|
|
|
|
- err = mv88e6xxx_energy_detect_write(chip, port, e);
|
|
|
|
- mutex_unlock(&chip->reg_lock);
|
|
|
|
-
|
|
|
|
- return err;
|
|
|
|
|
|
+ /* Nothing to do on the port's MAC */
|
|
|
|
+ return 0;
|
|
}
|
|
}
|
|
|
|
|
|
static u16 mv88e6xxx_port_vlan(struct mv88e6xxx_chip *chip, int dev, int port)
|
|
static u16 mv88e6xxx_port_vlan(struct mv88e6xxx_chip *chip, int dev, int port)
|
|
@@ -2521,8 +2483,6 @@ static const struct mv88e6xxx_ops mv88e6141_ops = {
|
|
.set_switch_mac = mv88e6xxx_g2_set_switch_mac,
|
|
.set_switch_mac = mv88e6xxx_g2_set_switch_mac,
|
|
.phy_read = mv88e6xxx_g2_smi_phy_read,
|
|
.phy_read = mv88e6xxx_g2_smi_phy_read,
|
|
.phy_write = mv88e6xxx_g2_smi_phy_write,
|
|
.phy_write = mv88e6xxx_g2_smi_phy_write,
|
|
- .phy_energy_detect_read = mv88e6352_phy_energy_detect_read,
|
|
|
|
- .phy_energy_detect_write = mv88e6352_phy_energy_detect_write,
|
|
|
|
.port_set_link = mv88e6xxx_port_set_link,
|
|
.port_set_link = mv88e6xxx_port_set_link,
|
|
.port_set_duplex = mv88e6xxx_port_set_duplex,
|
|
.port_set_duplex = mv88e6xxx_port_set_duplex,
|
|
.port_set_rgmii_delay = mv88e6390_port_set_rgmii_delay,
|
|
.port_set_rgmii_delay = mv88e6390_port_set_rgmii_delay,
|
|
@@ -2648,8 +2608,6 @@ static const struct mv88e6xxx_ops mv88e6172_ops = {
|
|
.set_switch_mac = mv88e6xxx_g2_set_switch_mac,
|
|
.set_switch_mac = mv88e6xxx_g2_set_switch_mac,
|
|
.phy_read = mv88e6xxx_g2_smi_phy_read,
|
|
.phy_read = mv88e6xxx_g2_smi_phy_read,
|
|
.phy_write = mv88e6xxx_g2_smi_phy_write,
|
|
.phy_write = mv88e6xxx_g2_smi_phy_write,
|
|
- .phy_energy_detect_read = mv88e6352_phy_energy_detect_read,
|
|
|
|
- .phy_energy_detect_write = mv88e6352_phy_energy_detect_write,
|
|
|
|
.port_set_link = mv88e6xxx_port_set_link,
|
|
.port_set_link = mv88e6xxx_port_set_link,
|
|
.port_set_duplex = mv88e6xxx_port_set_duplex,
|
|
.port_set_duplex = mv88e6xxx_port_set_duplex,
|
|
.port_set_rgmii_delay = mv88e6352_port_set_rgmii_delay,
|
|
.port_set_rgmii_delay = mv88e6352_port_set_rgmii_delay,
|
|
@@ -2719,8 +2677,6 @@ static const struct mv88e6xxx_ops mv88e6176_ops = {
|
|
.set_switch_mac = mv88e6xxx_g2_set_switch_mac,
|
|
.set_switch_mac = mv88e6xxx_g2_set_switch_mac,
|
|
.phy_read = mv88e6xxx_g2_smi_phy_read,
|
|
.phy_read = mv88e6xxx_g2_smi_phy_read,
|
|
.phy_write = mv88e6xxx_g2_smi_phy_write,
|
|
.phy_write = mv88e6xxx_g2_smi_phy_write,
|
|
- .phy_energy_detect_read = mv88e6352_phy_energy_detect_read,
|
|
|
|
- .phy_energy_detect_write = mv88e6352_phy_energy_detect_write,
|
|
|
|
.port_set_link = mv88e6xxx_port_set_link,
|
|
.port_set_link = mv88e6xxx_port_set_link,
|
|
.port_set_duplex = mv88e6xxx_port_set_duplex,
|
|
.port_set_duplex = mv88e6xxx_port_set_duplex,
|
|
.port_set_rgmii_delay = mv88e6352_port_set_rgmii_delay,
|
|
.port_set_rgmii_delay = mv88e6352_port_set_rgmii_delay,
|
|
@@ -2784,8 +2740,6 @@ static const struct mv88e6xxx_ops mv88e6190_ops = {
|
|
.set_switch_mac = mv88e6xxx_g2_set_switch_mac,
|
|
.set_switch_mac = mv88e6xxx_g2_set_switch_mac,
|
|
.phy_read = mv88e6xxx_g2_smi_phy_read,
|
|
.phy_read = mv88e6xxx_g2_smi_phy_read,
|
|
.phy_write = mv88e6xxx_g2_smi_phy_write,
|
|
.phy_write = mv88e6xxx_g2_smi_phy_write,
|
|
- .phy_energy_detect_read = mv88e6390_phy_energy_detect_read,
|
|
|
|
- .phy_energy_detect_write = mv88e6390_phy_energy_detect_write,
|
|
|
|
.port_set_link = mv88e6xxx_port_set_link,
|
|
.port_set_link = mv88e6xxx_port_set_link,
|
|
.port_set_duplex = mv88e6xxx_port_set_duplex,
|
|
.port_set_duplex = mv88e6xxx_port_set_duplex,
|
|
.port_set_rgmii_delay = mv88e6390_port_set_rgmii_delay,
|
|
.port_set_rgmii_delay = mv88e6390_port_set_rgmii_delay,
|
|
@@ -2821,8 +2775,6 @@ static const struct mv88e6xxx_ops mv88e6190x_ops = {
|
|
.set_switch_mac = mv88e6xxx_g2_set_switch_mac,
|
|
.set_switch_mac = mv88e6xxx_g2_set_switch_mac,
|
|
.phy_read = mv88e6xxx_g2_smi_phy_read,
|
|
.phy_read = mv88e6xxx_g2_smi_phy_read,
|
|
.phy_write = mv88e6xxx_g2_smi_phy_write,
|
|
.phy_write = mv88e6xxx_g2_smi_phy_write,
|
|
- .phy_energy_detect_read = mv88e6390_phy_energy_detect_read,
|
|
|
|
- .phy_energy_detect_write = mv88e6390_phy_energy_detect_write,
|
|
|
|
.port_set_link = mv88e6xxx_port_set_link,
|
|
.port_set_link = mv88e6xxx_port_set_link,
|
|
.port_set_duplex = mv88e6xxx_port_set_duplex,
|
|
.port_set_duplex = mv88e6xxx_port_set_duplex,
|
|
.port_set_rgmii_delay = mv88e6390_port_set_rgmii_delay,
|
|
.port_set_rgmii_delay = mv88e6390_port_set_rgmii_delay,
|
|
@@ -2858,8 +2810,6 @@ static const struct mv88e6xxx_ops mv88e6191_ops = {
|
|
.set_switch_mac = mv88e6xxx_g2_set_switch_mac,
|
|
.set_switch_mac = mv88e6xxx_g2_set_switch_mac,
|
|
.phy_read = mv88e6xxx_g2_smi_phy_read,
|
|
.phy_read = mv88e6xxx_g2_smi_phy_read,
|
|
.phy_write = mv88e6xxx_g2_smi_phy_write,
|
|
.phy_write = mv88e6xxx_g2_smi_phy_write,
|
|
- .phy_energy_detect_read = mv88e6390_phy_energy_detect_read,
|
|
|
|
- .phy_energy_detect_write = mv88e6390_phy_energy_detect_write,
|
|
|
|
.port_set_link = mv88e6xxx_port_set_link,
|
|
.port_set_link = mv88e6xxx_port_set_link,
|
|
.port_set_duplex = mv88e6xxx_port_set_duplex,
|
|
.port_set_duplex = mv88e6xxx_port_set_duplex,
|
|
.port_set_rgmii_delay = mv88e6390_port_set_rgmii_delay,
|
|
.port_set_rgmii_delay = mv88e6390_port_set_rgmii_delay,
|
|
@@ -2895,8 +2845,6 @@ static const struct mv88e6xxx_ops mv88e6240_ops = {
|
|
.set_switch_mac = mv88e6xxx_g2_set_switch_mac,
|
|
.set_switch_mac = mv88e6xxx_g2_set_switch_mac,
|
|
.phy_read = mv88e6xxx_g2_smi_phy_read,
|
|
.phy_read = mv88e6xxx_g2_smi_phy_read,
|
|
.phy_write = mv88e6xxx_g2_smi_phy_write,
|
|
.phy_write = mv88e6xxx_g2_smi_phy_write,
|
|
- .phy_energy_detect_read = mv88e6352_phy_energy_detect_read,
|
|
|
|
- .phy_energy_detect_write = mv88e6352_phy_energy_detect_write,
|
|
|
|
.port_set_link = mv88e6xxx_port_set_link,
|
|
.port_set_link = mv88e6xxx_port_set_link,
|
|
.port_set_duplex = mv88e6xxx_port_set_duplex,
|
|
.port_set_duplex = mv88e6xxx_port_set_duplex,
|
|
.port_set_rgmii_delay = mv88e6352_port_set_rgmii_delay,
|
|
.port_set_rgmii_delay = mv88e6352_port_set_rgmii_delay,
|
|
@@ -2933,8 +2881,6 @@ static const struct mv88e6xxx_ops mv88e6290_ops = {
|
|
.set_switch_mac = mv88e6xxx_g2_set_switch_mac,
|
|
.set_switch_mac = mv88e6xxx_g2_set_switch_mac,
|
|
.phy_read = mv88e6xxx_g2_smi_phy_read,
|
|
.phy_read = mv88e6xxx_g2_smi_phy_read,
|
|
.phy_write = mv88e6xxx_g2_smi_phy_write,
|
|
.phy_write = mv88e6xxx_g2_smi_phy_write,
|
|
- .phy_energy_detect_read = mv88e6390_phy_energy_detect_read,
|
|
|
|
- .phy_energy_detect_write = mv88e6390_phy_energy_detect_write,
|
|
|
|
.port_set_link = mv88e6xxx_port_set_link,
|
|
.port_set_link = mv88e6xxx_port_set_link,
|
|
.port_set_duplex = mv88e6xxx_port_set_duplex,
|
|
.port_set_duplex = mv88e6xxx_port_set_duplex,
|
|
.port_set_rgmii_delay = mv88e6390_port_set_rgmii_delay,
|
|
.port_set_rgmii_delay = mv88e6390_port_set_rgmii_delay,
|
|
@@ -2971,8 +2917,6 @@ static const struct mv88e6xxx_ops mv88e6320_ops = {
|
|
.set_switch_mac = mv88e6xxx_g2_set_switch_mac,
|
|
.set_switch_mac = mv88e6xxx_g2_set_switch_mac,
|
|
.phy_read = mv88e6xxx_g2_smi_phy_read,
|
|
.phy_read = mv88e6xxx_g2_smi_phy_read,
|
|
.phy_write = mv88e6xxx_g2_smi_phy_write,
|
|
.phy_write = mv88e6xxx_g2_smi_phy_write,
|
|
- .phy_energy_detect_read = mv88e6352_phy_energy_detect_read,
|
|
|
|
- .phy_energy_detect_write = mv88e6352_phy_energy_detect_write,
|
|
|
|
.port_set_link = mv88e6xxx_port_set_link,
|
|
.port_set_link = mv88e6xxx_port_set_link,
|
|
.port_set_duplex = mv88e6xxx_port_set_duplex,
|
|
.port_set_duplex = mv88e6xxx_port_set_duplex,
|
|
.port_set_speed = mv88e6185_port_set_speed,
|
|
.port_set_speed = mv88e6185_port_set_speed,
|
|
@@ -3006,8 +2950,6 @@ static const struct mv88e6xxx_ops mv88e6321_ops = {
|
|
.set_switch_mac = mv88e6xxx_g2_set_switch_mac,
|
|
.set_switch_mac = mv88e6xxx_g2_set_switch_mac,
|
|
.phy_read = mv88e6xxx_g2_smi_phy_read,
|
|
.phy_read = mv88e6xxx_g2_smi_phy_read,
|
|
.phy_write = mv88e6xxx_g2_smi_phy_write,
|
|
.phy_write = mv88e6xxx_g2_smi_phy_write,
|
|
- .phy_energy_detect_read = mv88e6352_phy_energy_detect_read,
|
|
|
|
- .phy_energy_detect_write = mv88e6352_phy_energy_detect_write,
|
|
|
|
.port_set_link = mv88e6xxx_port_set_link,
|
|
.port_set_link = mv88e6xxx_port_set_link,
|
|
.port_set_duplex = mv88e6xxx_port_set_duplex,
|
|
.port_set_duplex = mv88e6xxx_port_set_duplex,
|
|
.port_set_speed = mv88e6185_port_set_speed,
|
|
.port_set_speed = mv88e6185_port_set_speed,
|
|
@@ -3039,8 +2981,6 @@ static const struct mv88e6xxx_ops mv88e6341_ops = {
|
|
.set_switch_mac = mv88e6xxx_g2_set_switch_mac,
|
|
.set_switch_mac = mv88e6xxx_g2_set_switch_mac,
|
|
.phy_read = mv88e6xxx_g2_smi_phy_read,
|
|
.phy_read = mv88e6xxx_g2_smi_phy_read,
|
|
.phy_write = mv88e6xxx_g2_smi_phy_write,
|
|
.phy_write = mv88e6xxx_g2_smi_phy_write,
|
|
- .phy_energy_detect_read = mv88e6352_phy_energy_detect_read,
|
|
|
|
- .phy_energy_detect_write = mv88e6352_phy_energy_detect_write,
|
|
|
|
.port_set_link = mv88e6xxx_port_set_link,
|
|
.port_set_link = mv88e6xxx_port_set_link,
|
|
.port_set_duplex = mv88e6xxx_port_set_duplex,
|
|
.port_set_duplex = mv88e6xxx_port_set_duplex,
|
|
.port_set_rgmii_delay = mv88e6390_port_set_rgmii_delay,
|
|
.port_set_rgmii_delay = mv88e6390_port_set_rgmii_delay,
|
|
@@ -3142,8 +3082,6 @@ static const struct mv88e6xxx_ops mv88e6352_ops = {
|
|
.set_switch_mac = mv88e6xxx_g2_set_switch_mac,
|
|
.set_switch_mac = mv88e6xxx_g2_set_switch_mac,
|
|
.phy_read = mv88e6xxx_g2_smi_phy_read,
|
|
.phy_read = mv88e6xxx_g2_smi_phy_read,
|
|
.phy_write = mv88e6xxx_g2_smi_phy_write,
|
|
.phy_write = mv88e6xxx_g2_smi_phy_write,
|
|
- .phy_energy_detect_read = mv88e6352_phy_energy_detect_read,
|
|
|
|
- .phy_energy_detect_write = mv88e6352_phy_energy_detect_write,
|
|
|
|
.port_set_link = mv88e6xxx_port_set_link,
|
|
.port_set_link = mv88e6xxx_port_set_link,
|
|
.port_set_duplex = mv88e6xxx_port_set_duplex,
|
|
.port_set_duplex = mv88e6xxx_port_set_duplex,
|
|
.port_set_rgmii_delay = mv88e6352_port_set_rgmii_delay,
|
|
.port_set_rgmii_delay = mv88e6352_port_set_rgmii_delay,
|
|
@@ -3180,8 +3118,6 @@ static const struct mv88e6xxx_ops mv88e6390_ops = {
|
|
.set_switch_mac = mv88e6xxx_g2_set_switch_mac,
|
|
.set_switch_mac = mv88e6xxx_g2_set_switch_mac,
|
|
.phy_read = mv88e6xxx_g2_smi_phy_read,
|
|
.phy_read = mv88e6xxx_g2_smi_phy_read,
|
|
.phy_write = mv88e6xxx_g2_smi_phy_write,
|
|
.phy_write = mv88e6xxx_g2_smi_phy_write,
|
|
- .phy_energy_detect_read = mv88e6390_phy_energy_detect_read,
|
|
|
|
- .phy_energy_detect_write = mv88e6390_phy_energy_detect_write,
|
|
|
|
.port_set_link = mv88e6xxx_port_set_link,
|
|
.port_set_link = mv88e6xxx_port_set_link,
|
|
.port_set_duplex = mv88e6xxx_port_set_duplex,
|
|
.port_set_duplex = mv88e6xxx_port_set_duplex,
|
|
.port_set_rgmii_delay = mv88e6390_port_set_rgmii_delay,
|
|
.port_set_rgmii_delay = mv88e6390_port_set_rgmii_delay,
|
|
@@ -3220,8 +3156,6 @@ static const struct mv88e6xxx_ops mv88e6390x_ops = {
|
|
.set_switch_mac = mv88e6xxx_g2_set_switch_mac,
|
|
.set_switch_mac = mv88e6xxx_g2_set_switch_mac,
|
|
.phy_read = mv88e6xxx_g2_smi_phy_read,
|
|
.phy_read = mv88e6xxx_g2_smi_phy_read,
|
|
.phy_write = mv88e6xxx_g2_smi_phy_write,
|
|
.phy_write = mv88e6xxx_g2_smi_phy_write,
|
|
- .phy_energy_detect_read = mv88e6390_phy_energy_detect_read,
|
|
|
|
- .phy_energy_detect_write = mv88e6390_phy_energy_detect_write,
|
|
|
|
.port_set_link = mv88e6xxx_port_set_link,
|
|
.port_set_link = mv88e6xxx_port_set_link,
|
|
.port_set_duplex = mv88e6xxx_port_set_duplex,
|
|
.port_set_duplex = mv88e6xxx_port_set_duplex,
|
|
.port_set_rgmii_delay = mv88e6390_port_set_rgmii_delay,
|
|
.port_set_rgmii_delay = mv88e6390_port_set_rgmii_delay,
|
|
@@ -3956,8 +3890,8 @@ static const struct dsa_switch_ops mv88e6xxx_switch_ops = {
|
|
.get_sset_count = mv88e6xxx_get_sset_count,
|
|
.get_sset_count = mv88e6xxx_get_sset_count,
|
|
.port_enable = mv88e6xxx_port_enable,
|
|
.port_enable = mv88e6xxx_port_enable,
|
|
.port_disable = mv88e6xxx_port_disable,
|
|
.port_disable = mv88e6xxx_port_disable,
|
|
- .set_eee = mv88e6xxx_set_eee,
|
|
|
|
- .get_eee = mv88e6xxx_get_eee,
|
|
|
|
|
|
+ .get_mac_eee = mv88e6xxx_get_mac_eee,
|
|
|
|
+ .set_mac_eee = mv88e6xxx_set_mac_eee,
|
|
.get_eeprom_len = mv88e6xxx_get_eeprom_len,
|
|
.get_eeprom_len = mv88e6xxx_get_eeprom_len,
|
|
.get_eeprom = mv88e6xxx_get_eeprom,
|
|
.get_eeprom = mv88e6xxx_get_eeprom,
|
|
.set_eeprom = mv88e6xxx_set_eeprom,
|
|
.set_eeprom = mv88e6xxx_set_eeprom,
|