Skip to content

Commit 446bc1e

Browse files
pmachatakuba-moo
authored andcommitted
mlxsw: reg: Extract flood-mode specific part of mlxsw_reg_sfmr_pack()
In CFF mode, it is necessary to set a different set of SFMR fields. Leave in mlxsw_reg_sfmr_pack() only the common bits, and move the parts relevant to controlled flood mode directly to the call site. Signed-off-by: Petr Machata <petrm@nvidia.com> Reviewed-by: Amit Cohen <amcohen@nvidia.com> Reviewed-by: Ido Schimmel <idosch@nvidia.com> Link: https://lore.kernel.org/r/6f29639ebc3ca0722272e6c644ca910096469413.1700503644.git.petrm@nvidia.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
1 parent 642d6a2 commit 446bc1e

File tree

2 files changed

+10
-10
lines changed

2 files changed

+10
-10
lines changed

drivers/net/ethernet/mellanox/mlxsw/reg.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1965,16 +1965,11 @@ MLXSW_ITEM32(reg, sfmr, smpe, 0x28, 0, 16);
19651965

19661966
static inline void mlxsw_reg_sfmr_pack(char *payload,
19671967
enum mlxsw_reg_sfmr_op op, u16 fid,
1968-
u16 fid_offset, bool flood_rsp,
1969-
enum mlxsw_reg_bridge_type bridge_type,
19701968
bool smpe_valid, u16 smpe)
19711969
{
19721970
MLXSW_REG_ZERO(sfmr, payload);
19731971
mlxsw_reg_sfmr_op_set(payload, op);
19741972
mlxsw_reg_sfmr_fid_set(payload, fid);
1975-
mlxsw_reg_sfmr_fid_offset_set(payload, fid_offset);
1976-
mlxsw_reg_sfmr_flood_rsp_set(payload, flood_rsp);
1977-
mlxsw_reg_sfmr_flood_bridge_type_set(payload, bridge_type);
19781973
mlxsw_reg_sfmr_smpe_valid_set(payload, smpe_valid);
19791974
mlxsw_reg_sfmr_smpe_set(payload, smpe);
19801975
}

drivers/net/ethernet/mellanox/mlxsw/spectrum_fid.c

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -433,9 +433,12 @@ static int mlxsw_sp_fid_op(const struct mlxsw_sp_fid *fid, bool valid)
433433
smpe = fid->fid_family->smpe_index_valid ? fid->fid_index : 0;
434434

435435
mlxsw_reg_sfmr_pack(sfmr_pl, mlxsw_sp_sfmr_op(valid), fid->fid_index,
436-
fid->fid_offset, fid->fid_family->flood_rsp,
437-
fid->fid_family->bridge_type,
438436
fid->fid_family->smpe_index_valid, smpe);
437+
mlxsw_reg_sfmr_fid_offset_set(sfmr_pl, fid->fid_offset);
438+
mlxsw_reg_sfmr_flood_rsp_set(sfmr_pl, fid->fid_family->flood_rsp);
439+
mlxsw_reg_sfmr_flood_bridge_type_set(sfmr_pl,
440+
fid->fid_family->bridge_type);
441+
439442
return mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(sfmr), sfmr_pl);
440443
}
441444

@@ -449,10 +452,12 @@ static int mlxsw_sp_fid_edit_op(const struct mlxsw_sp_fid *fid,
449452
smpe = fid->fid_family->smpe_index_valid ? fid->fid_index : 0;
450453

451454
mlxsw_reg_sfmr_pack(sfmr_pl, MLXSW_REG_SFMR_OP_CREATE_FID,
452-
fid->fid_index, fid->fid_offset,
453-
fid->fid_family->flood_rsp,
454-
fid->fid_family->bridge_type,
455+
fid->fid_index,
455456
fid->fid_family->smpe_index_valid, smpe);
457+
mlxsw_reg_sfmr_fid_offset_set(sfmr_pl, fid->fid_offset);
458+
mlxsw_reg_sfmr_flood_rsp_set(sfmr_pl, fid->fid_family->flood_rsp);
459+
mlxsw_reg_sfmr_flood_bridge_type_set(sfmr_pl,
460+
fid->fid_family->bridge_type);
456461
mlxsw_reg_sfmr_vv_set(sfmr_pl, fid->vni_valid);
457462
mlxsw_reg_sfmr_vni_set(sfmr_pl, be32_to_cpu(fid->vni));
458463
mlxsw_reg_sfmr_vtfp_set(sfmr_pl, fid->nve_flood_index_valid);

0 commit comments

Comments
 (0)