mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02:00
Merge branch 'fixes-for-mv88e6xxx-for-6320-6321-family'
Marek Behún says: ==================== Fixes for mv88e6xxx for 6320/6321 family Five fixes for mv88e6xxx for 6320/6321 family, for net-next, without Fixes tags, as per Andrew's request last year, see https://lore.kernel.org/netdev/20250313134146.27087-1-kabel@kernel.org/ ==================== Link: https://patch.msgid.link/20260504153227.1390546-1-kabel@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
commit
fc558d98e4
|
|
@ -5168,7 +5168,7 @@ static const struct mv88e6xxx_ops mv88e6320_ops = {
|
|||
.port_set_link = mv88e6xxx_port_set_link,
|
||||
.port_sync_link = mv88e6xxx_port_sync_link,
|
||||
.port_set_rgmii_delay = mv88e6320_port_set_rgmii_delay,
|
||||
.port_set_speed_duplex = mv88e6185_port_set_speed_duplex,
|
||||
.port_set_speed_duplex = mv88e6320_port_set_speed_duplex,
|
||||
.port_tag_remap = mv88e6095_port_tag_remap,
|
||||
.port_set_policy = mv88e6352_port_set_policy,
|
||||
.port_set_frame_mode = mv88e6351_port_set_frame_mode,
|
||||
|
|
@ -5195,6 +5195,9 @@ static const struct mv88e6xxx_ops mv88e6320_ops = {
|
|||
.hardware_reset_pre = mv88e6xxx_g2_eeprom_wait,
|
||||
.hardware_reset_post = mv88e6xxx_g2_eeprom_wait,
|
||||
.reset = mv88e6352_g1_reset,
|
||||
.rmu_disable = mv88e6352_g1_rmu_disable,
|
||||
.atu_get_hash = mv88e6165_g1_atu_get_hash,
|
||||
.atu_set_hash = mv88e6165_g1_atu_set_hash,
|
||||
.vtu_getnext = mv88e6352_g1_vtu_getnext,
|
||||
.vtu_loadpurge = mv88e6352_g1_vtu_loadpurge,
|
||||
.stu_getnext = mv88e6352_g1_stu_getnext,
|
||||
|
|
@ -5221,7 +5224,7 @@ static const struct mv88e6xxx_ops mv88e6321_ops = {
|
|||
.port_set_link = mv88e6xxx_port_set_link,
|
||||
.port_sync_link = mv88e6xxx_port_sync_link,
|
||||
.port_set_rgmii_delay = mv88e6320_port_set_rgmii_delay,
|
||||
.port_set_speed_duplex = mv88e6185_port_set_speed_duplex,
|
||||
.port_set_speed_duplex = mv88e6320_port_set_speed_duplex,
|
||||
.port_tag_remap = mv88e6095_port_tag_remap,
|
||||
.port_set_policy = mv88e6352_port_set_policy,
|
||||
.port_set_frame_mode = mv88e6351_port_set_frame_mode,
|
||||
|
|
@ -5244,9 +5247,13 @@ static const struct mv88e6xxx_ops mv88e6321_ops = {
|
|||
.set_egress_port = mv88e6095_g1_set_egress_port,
|
||||
.watchdog_ops = &mv88e6390_watchdog_ops,
|
||||
.mgmt_rsvd2cpu = mv88e6352_g2_mgmt_rsvd2cpu,
|
||||
.pot_clear = mv88e6xxx_g2_pot_clear,
|
||||
.hardware_reset_pre = mv88e6xxx_g2_eeprom_wait,
|
||||
.hardware_reset_post = mv88e6xxx_g2_eeprom_wait,
|
||||
.reset = mv88e6352_g1_reset,
|
||||
.rmu_disable = mv88e6352_g1_rmu_disable,
|
||||
.atu_get_hash = mv88e6165_g1_atu_get_hash,
|
||||
.atu_set_hash = mv88e6165_g1_atu_set_hash,
|
||||
.vtu_getnext = mv88e6352_g1_vtu_getnext,
|
||||
.vtu_loadpurge = mv88e6352_g1_vtu_loadpurge,
|
||||
.stu_getnext = mv88e6352_g1_stu_getnext,
|
||||
|
|
@ -6280,7 +6287,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
|||
.global1_addr = 0x1b,
|
||||
.global2_addr = 0x1c,
|
||||
.age_time_coeff = 15000,
|
||||
.g1_irqs = 8,
|
||||
.g1_irqs = 9,
|
||||
.g2_irqs = 10,
|
||||
.stats_type = STATS_TYPE_BANK0 | STATS_TYPE_BANK1,
|
||||
.atu_move_port_mask = 0xf,
|
||||
|
|
@ -6308,7 +6315,7 @@ static const struct mv88e6xxx_info mv88e6xxx_table[] = {
|
|||
.global1_addr = 0x1b,
|
||||
.global2_addr = 0x1c,
|
||||
.age_time_coeff = 15000,
|
||||
.g1_irqs = 8,
|
||||
.g1_irqs = 9,
|
||||
.g2_irqs = 10,
|
||||
.stats_type = STATS_TYPE_BANK0 | STATS_TYPE_BANK1,
|
||||
.atu_move_port_mask = 0xf,
|
||||
|
|
|
|||
|
|
@ -327,6 +327,21 @@ int mv88e6250_port_set_speed_duplex(struct mv88e6xxx_chip *chip, int port,
|
|||
duplex);
|
||||
}
|
||||
|
||||
int mv88e6320_port_set_speed_duplex(struct mv88e6xxx_chip *chip, int port,
|
||||
int speed, int duplex)
|
||||
{
|
||||
bool has_200 = (port == 2 || port == 5 || port == 6);
|
||||
|
||||
if (speed > 1000)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
if (speed == 200 && !has_200)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
return mv88e6xxx_port_set_speed_duplex(chip, port, speed, has_200,
|
||||
false, duplex);
|
||||
}
|
||||
|
||||
/* Support 10, 100, 200, 1000, 2500 Mbps (e.g. 88E6341) */
|
||||
int mv88e6341_port_set_speed_duplex(struct mv88e6xxx_chip *chip, int port,
|
||||
int speed, int duplex)
|
||||
|
|
|
|||
|
|
@ -493,6 +493,8 @@ int mv88e6185_port_set_speed_duplex(struct mv88e6xxx_chip *chip, int port,
|
|||
int speed, int duplex);
|
||||
int mv88e6250_port_set_speed_duplex(struct mv88e6xxx_chip *chip, int port,
|
||||
int speed, int duplex);
|
||||
int mv88e6320_port_set_speed_duplex(struct mv88e6xxx_chip *chip, int port,
|
||||
int speed, int duplex);
|
||||
int mv88e6341_port_set_speed_duplex(struct mv88e6xxx_chip *chip, int port,
|
||||
int speed, int duplex);
|
||||
int mv88e6352_port_set_speed_duplex(struct mv88e6xxx_chip *chip, int port,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user