mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
mlxsw: spectrum: Add struct mlxsw_sp_sb_vals
Spectrum-2 will be configured with a different shared buffer configuration than Spectrum-1. Therefore introduce a structure for keeping the chip-specific default and immutable configuration. Configuration mutable in runtime will still be kept in struct mlxsw_sp_sb. Signed-off-by: Petr Machata <petrm@mellanox.com> Signed-off-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
fdb89a3113
commit
c39f3e0e4f
3 changed files with 16 additions and 0 deletions
|
@ -4092,6 +4092,7 @@ static int mlxsw_sp1_init(struct mlxsw_core *mlxsw_core,
|
|||
mlxsw_sp->nve_ops_arr = mlxsw_sp1_nve_ops_arr;
|
||||
mlxsw_sp->mac_mask = mlxsw_sp1_mac_mask;
|
||||
mlxsw_sp->rif_ops_arr = mlxsw_sp1_rif_ops_arr;
|
||||
mlxsw_sp->sb_vals = &mlxsw_sp1_sb_vals;
|
||||
|
||||
return mlxsw_sp_init(mlxsw_core, mlxsw_bus_info);
|
||||
}
|
||||
|
@ -4109,6 +4110,7 @@ static int mlxsw_sp2_init(struct mlxsw_core *mlxsw_core,
|
|||
mlxsw_sp->nve_ops_arr = mlxsw_sp2_nve_ops_arr;
|
||||
mlxsw_sp->mac_mask = mlxsw_sp2_mac_mask;
|
||||
mlxsw_sp->rif_ops_arr = mlxsw_sp2_rif_ops_arr;
|
||||
mlxsw_sp->sb_vals = &mlxsw_sp2_sb_vals;
|
||||
|
||||
return mlxsw_sp_init(mlxsw_core, mlxsw_bus_info);
|
||||
}
|
||||
|
|
|
@ -133,6 +133,7 @@ struct mlxsw_sp_kvdl_ops;
|
|||
struct mlxsw_sp_mr_tcam_ops;
|
||||
struct mlxsw_sp_acl_tcam_ops;
|
||||
struct mlxsw_sp_nve_ops;
|
||||
struct mlxsw_sp_sb_vals;
|
||||
|
||||
struct mlxsw_sp {
|
||||
struct mlxsw_sp_port **ports;
|
||||
|
@ -167,6 +168,7 @@ struct mlxsw_sp {
|
|||
const struct mlxsw_sp_acl_tcam_ops *acl_tcam_ops;
|
||||
const struct mlxsw_sp_nve_ops **nve_ops_arr;
|
||||
const struct mlxsw_sp_rif_ops **rif_ops_arr;
|
||||
const struct mlxsw_sp_sb_vals *sb_vals;
|
||||
};
|
||||
|
||||
static inline struct mlxsw_sp_upper *
|
||||
|
@ -372,6 +374,9 @@ int mlxsw_sp_sb_occ_tc_port_bind_get(struct mlxsw_core_port *mlxsw_core_port,
|
|||
u32 mlxsw_sp_cells_bytes(const struct mlxsw_sp *mlxsw_sp, u32 cells);
|
||||
u32 mlxsw_sp_bytes_cells(const struct mlxsw_sp *mlxsw_sp, u32 bytes);
|
||||
|
||||
extern const struct mlxsw_sp_sb_vals mlxsw_sp1_sb_vals;
|
||||
extern const struct mlxsw_sp_sb_vals mlxsw_sp2_sb_vals;
|
||||
|
||||
/* spectrum_switchdev.c */
|
||||
int mlxsw_sp_switchdev_init(struct mlxsw_sp *mlxsw_sp);
|
||||
void mlxsw_sp_switchdev_fini(struct mlxsw_sp *mlxsw_sp);
|
||||
|
|
|
@ -73,6 +73,9 @@ struct mlxsw_sp_sb {
|
|||
u64 sb_size;
|
||||
};
|
||||
|
||||
struct mlxsw_sp_sb_vals {
|
||||
};
|
||||
|
||||
u32 mlxsw_sp_cells_bytes(const struct mlxsw_sp *mlxsw_sp, u32 cells)
|
||||
{
|
||||
return mlxsw_sp->sb->cell_size * cells;
|
||||
|
@ -625,6 +628,12 @@ out:
|
|||
*p_egress_len = MLXSW_SP_SB_POOL_DESS_LEN - i;
|
||||
}
|
||||
|
||||
const struct mlxsw_sp_sb_vals mlxsw_sp1_sb_vals = {
|
||||
};
|
||||
|
||||
const struct mlxsw_sp_sb_vals mlxsw_sp2_sb_vals = {
|
||||
};
|
||||
|
||||
int mlxsw_sp_buffers_init(struct mlxsw_sp *mlxsw_sp)
|
||||
{
|
||||
u16 ing_pool_count;
|
||||
|
|
Loading…
Add table
Reference in a new issue