mlxsw: spectrum: Keep maximum speed around
The maximum port speed depends on link modes supported by the port, and for Ethernet ports is constant. The maximum speed will be handy when setting SBIB, the internal buffer used for traffic mirroring. Therefore, keep it in struct mlxsw_sp_port for easy access. Signed-off-by: Petr Machata <petrm@nvidia.com> Signed-off-by: Ido Schimmel <idosch@nvidia.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
2ecf87ae6c
commit
3232e8c66e
@@ -1849,6 +1849,14 @@ static int mlxsw_sp_port_create(struct mlxsw_sp *mlxsw_sp, u8 local_port,
|
||||
goto err_port_speed_by_width_set;
|
||||
}
|
||||
|
||||
err = mlxsw_sp->port_type_speed_ops->ptys_max_speed(mlxsw_sp_port,
|
||||
&mlxsw_sp_port->max_speed);
|
||||
if (err) {
|
||||
dev_err(mlxsw_sp->bus_info->dev, "Port %d: Failed to get maximum speed\n",
|
||||
mlxsw_sp_port->local_port);
|
||||
goto err_max_speed_get;
|
||||
}
|
||||
|
||||
err = mlxsw_sp_port_max_mtu_get(mlxsw_sp_port, &mlxsw_sp_port->max_mtu);
|
||||
if (err) {
|
||||
dev_err(mlxsw_sp->bus_info->dev, "Port %d: Failed to get maximum MTU\n",
|
||||
@@ -1981,6 +1989,7 @@ err_port_buffers_init:
|
||||
err_port_admin_status_set:
|
||||
err_port_mtu_set:
|
||||
err_port_max_mtu_get:
|
||||
err_max_speed_get:
|
||||
err_port_speed_by_width_set:
|
||||
err_port_system_port_mapping_set:
|
||||
err_dev_addr_init:
|
||||
|
||||
@@ -320,6 +320,7 @@ struct mlxsw_sp_port {
|
||||
struct delayed_work speed_update_dw;
|
||||
} span;
|
||||
int max_mtu;
|
||||
u32 max_speed;
|
||||
};
|
||||
|
||||
struct mlxsw_sp_port_type_speed_ops {
|
||||
|
||||
Reference in New Issue
Block a user