Commit cc1ce6ff authored by Petr Machata's avatar Petr Machata Committed by David S. Miller

mlxsw: spectrum_buffers: Keep mlxsw_sp_sb_pms in mlxsw_sp_sb_vals

The SBPM register can be used to configure quotas for packets ingressing
from a certain pool to a certain port, and egressing from a certain pool
to a certain port. The default configuration depends on the chip type.
Therefore keep it in struct mlxsw_sp_sb_vals. Redirect the one reference
from the global array to the field.

Because the pool descriptor ID is implicit in the ordering of array
members, both this array and the pool descriptor array have the same
length. Therefore reuse mlxsw_sp_sb.pool_dess_len for the purpose of
determining the length of SBPM array.

Drop the now useless MLXSW_SP_SB_PMS_LEN.
Signed-off-by: default avatarPetr Machata <petrm@mellanox.com>
Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 5d65f5f4
...@@ -74,6 +74,7 @@ struct mlxsw_sp_sb { ...@@ -74,6 +74,7 @@ struct mlxsw_sp_sb {
struct mlxsw_sp_sb_vals { struct mlxsw_sp_sb_vals {
unsigned int pool_count; unsigned int pool_count;
const struct mlxsw_sp_sb_pool_des *pool_dess; const struct mlxsw_sp_sb_pool_des *pool_dess;
const struct mlxsw_sp_sb_pm *pms;
}; };
u32 mlxsw_sp_cells_bytes(const struct mlxsw_sp *mlxsw_sp, u32 cells) u32 mlxsw_sp_cells_bytes(const struct mlxsw_sp *mlxsw_sp, u32 cells)
...@@ -581,16 +582,14 @@ static const struct mlxsw_sp_sb_pm mlxsw_sp_sb_pms[] = { ...@@ -581,16 +582,14 @@ static const struct mlxsw_sp_sb_pm mlxsw_sp_sb_pms[] = {
MLXSW_SP_SB_PM(10000, 90000), MLXSW_SP_SB_PM(10000, 90000),
}; };
#define MLXSW_SP_SB_PMS_LEN ARRAY_SIZE(mlxsw_sp_sb_pms)
static int mlxsw_sp_port_sb_pms_init(struct mlxsw_sp_port *mlxsw_sp_port) static int mlxsw_sp_port_sb_pms_init(struct mlxsw_sp_port *mlxsw_sp_port)
{ {
struct mlxsw_sp *mlxsw_sp = mlxsw_sp_port->mlxsw_sp; struct mlxsw_sp *mlxsw_sp = mlxsw_sp_port->mlxsw_sp;
int i; int i;
int err; int err;
for (i = 0; i < MLXSW_SP_SB_PMS_LEN; i++) { for (i = 0; i < mlxsw_sp->sb_vals->pool_count; i++) {
const struct mlxsw_sp_sb_pm *pm = &mlxsw_sp_sb_pms[i]; const struct mlxsw_sp_sb_pm *pm = &mlxsw_sp->sb_vals->pms[i];
u32 max_buff; u32 max_buff;
u32 min_buff; u32 min_buff;
...@@ -684,11 +683,13 @@ static void mlxsw_sp_pool_count(struct mlxsw_sp *mlxsw_sp, ...@@ -684,11 +683,13 @@ static void mlxsw_sp_pool_count(struct mlxsw_sp *mlxsw_sp,
const struct mlxsw_sp_sb_vals mlxsw_sp1_sb_vals = { const struct mlxsw_sp_sb_vals mlxsw_sp1_sb_vals = {
.pool_count = ARRAY_SIZE(mlxsw_sp_sb_pool_dess), .pool_count = ARRAY_SIZE(mlxsw_sp_sb_pool_dess),
.pool_dess = mlxsw_sp_sb_pool_dess, .pool_dess = mlxsw_sp_sb_pool_dess,
.pms = mlxsw_sp_sb_pms,
}; };
const struct mlxsw_sp_sb_vals mlxsw_sp2_sb_vals = { const struct mlxsw_sp_sb_vals mlxsw_sp2_sb_vals = {
.pool_count = ARRAY_SIZE(mlxsw_sp_sb_pool_dess), .pool_count = ARRAY_SIZE(mlxsw_sp_sb_pool_dess),
.pool_dess = mlxsw_sp_sb_pool_dess, .pool_dess = mlxsw_sp_sb_pool_dess,
.pms = mlxsw_sp_sb_pms,
}; };
int mlxsw_sp_buffers_init(struct mlxsw_sp *mlxsw_sp) int mlxsw_sp_buffers_init(struct mlxsw_sp *mlxsw_sp)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment