|
|
|
@@ -2834,8 +2834,8 @@ static int mv88e6xxx_setup_port(struct mv88e6xxx_chip *chip, int port)
|
|
|
|
|
if (err)
|
|
|
|
|
return err;
|
|
|
|
|
|
|
|
|
|
/* Port Control 2: don't force a good FCS, set the maximum frame size to
|
|
|
|
|
* 10240 bytes, disable 802.1q tags checking, don't discard tagged or
|
|
|
|
|
/* Port Control 2: don't force a good FCS, set the MTU size to
|
|
|
|
|
* 10222 bytes, disable 802.1q tags checking, don't discard tagged or
|
|
|
|
|
* untagged frames on this port, do a destination address lookup on all
|
|
|
|
|
* received packets as usual, disable ARP mirroring and don't send a
|
|
|
|
|
* copy of all transmitted/received frames on this port to the CPU.
|
|
|
|
@@ -2854,7 +2854,7 @@ static int mv88e6xxx_setup_port(struct mv88e6xxx_chip *chip, int port)
|
|
|
|
|
return err;
|
|
|
|
|
|
|
|
|
|
if (chip->info->ops->port_set_jumbo_size) {
|
|
|
|
|
err = chip->info->ops->port_set_jumbo_size(chip, port, 10240);
|
|
|
|
|
err = chip->info->ops->port_set_jumbo_size(chip, port, 10218);
|
|
|
|
|
if (err)
|
|
|
|
|
return err;
|
|
|
|
|
}
|
|
|
|
@@ -2944,10 +2944,10 @@ static int mv88e6xxx_get_max_mtu(struct dsa_switch *ds, int port)
|
|
|
|
|
struct mv88e6xxx_chip *chip = ds->priv;
|
|
|
|
|
|
|
|
|
|
if (chip->info->ops->port_set_jumbo_size)
|
|
|
|
|
return 10240;
|
|
|
|
|
return 10240 - VLAN_ETH_HLEN - EDSA_HLEN - ETH_FCS_LEN;
|
|
|
|
|
else if (chip->info->ops->set_max_frame_size)
|
|
|
|
|
return 1632;
|
|
|
|
|
return 1522;
|
|
|
|
|
return 1632 - VLAN_ETH_HLEN - EDSA_HLEN - ETH_FCS_LEN;
|
|
|
|
|
return 1522 - VLAN_ETH_HLEN - EDSA_HLEN - ETH_FCS_LEN;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static int mv88e6xxx_change_mtu(struct dsa_switch *ds, int port, int new_mtu)
|
|
|
|
@@ -2955,6 +2955,9 @@ static int mv88e6xxx_change_mtu(struct dsa_switch *ds, int port, int new_mtu)
|
|
|
|
|
struct mv88e6xxx_chip *chip = ds->priv;
|
|
|
|
|
int ret = 0;
|
|
|
|
|
|
|
|
|
|
if (dsa_is_dsa_port(ds, port) || dsa_is_cpu_port(ds, port))
|
|
|
|
|
new_mtu += EDSA_HLEN;
|
|
|
|
|
|
|
|
|
|
mv88e6xxx_reg_lock(chip);
|
|
|
|
|
if (chip->info->ops->port_set_jumbo_size)
|
|
|
|
|
ret = chip->info->ops->port_set_jumbo_size(chip, port, new_mtu);
|
|
|
|
@@ -3725,7 +3728,6 @@ static const struct mv88e6xxx_ops mv88e6161_ops = {
|
|
|
|
|
.port_set_ucast_flood = mv88e6352_port_set_ucast_flood,
|
|
|
|
|
.port_set_mcast_flood = mv88e6352_port_set_mcast_flood,
|
|
|
|
|
.port_set_ether_type = mv88e6351_port_set_ether_type,
|
|
|
|
|
.port_set_jumbo_size = mv88e6165_port_set_jumbo_size,
|
|
|
|
|
.port_egress_rate_limiting = mv88e6097_port_egress_rate_limiting,
|
|
|
|
|
.port_pause_limit = mv88e6097_port_pause_limit,
|
|
|
|
|
.port_disable_learn_limit = mv88e6xxx_port_disable_learn_limit,
|
|
|
|
@@ -3750,6 +3752,7 @@ static const struct mv88e6xxx_ops mv88e6161_ops = {
|
|
|
|
|
.avb_ops = &mv88e6165_avb_ops,
|
|
|
|
|
.ptp_ops = &mv88e6165_ptp_ops,
|
|
|
|
|
.phylink_validate = mv88e6185_phylink_validate,
|
|
|
|
|
.set_max_frame_size = mv88e6185_g1_set_max_frame_size,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static const struct mv88e6xxx_ops mv88e6165_ops = {
|
|
|
|
|