mirror of https://gitee.com/openkylin/linux.git
mlxsw: core: Push minor/subminor fw version check into helper
Add new API for FW "minor" and "subminor" version validation for sharing it between "spectrum" and "minimal" drivers. Use it in "spectrum" driver. Signed-off-by: Vadim Pasternak <vadimp@mellanox.com> Acked-by: Jiri Pirko <jiri@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
c5cb92d59b
commit
762effaad6
|
@ -127,6 +127,16 @@ bool mlxsw_core_res_query_enabled(const struct mlxsw_core *mlxsw_core)
|
|||
}
|
||||
EXPORT_SYMBOL(mlxsw_core_res_query_enabled);
|
||||
|
||||
bool
|
||||
mlxsw_core_fw_rev_minor_subminor_validate(const struct mlxsw_fw_rev *rev,
|
||||
const struct mlxsw_fw_rev *req_rev)
|
||||
{
|
||||
return rev->minor > req_rev->minor ||
|
||||
(rev->minor == req_rev->minor &&
|
||||
rev->subminor >= req_rev->subminor);
|
||||
}
|
||||
EXPORT_SYMBOL(mlxsw_core_fw_rev_minor_subminor_validate);
|
||||
|
||||
struct mlxsw_rx_listener_item {
|
||||
struct list_head list;
|
||||
struct mlxsw_rx_listener rxl;
|
||||
|
|
|
@ -24,6 +24,7 @@ struct mlxsw_core_port;
|
|||
struct mlxsw_driver;
|
||||
struct mlxsw_bus;
|
||||
struct mlxsw_bus_info;
|
||||
struct mlxsw_fw_rev;
|
||||
|
||||
unsigned int mlxsw_core_max_ports(const struct mlxsw_core *mlxsw_core);
|
||||
|
||||
|
@ -31,6 +32,10 @@ void *mlxsw_core_driver_priv(struct mlxsw_core *mlxsw_core);
|
|||
|
||||
bool mlxsw_core_res_query_enabled(const struct mlxsw_core *mlxsw_core);
|
||||
|
||||
bool
|
||||
mlxsw_core_fw_rev_minor_subminor_validate(const struct mlxsw_fw_rev *rev,
|
||||
const struct mlxsw_fw_rev *req_rev);
|
||||
|
||||
int mlxsw_core_driver_register(struct mlxsw_driver *mlxsw_driver);
|
||||
void mlxsw_core_driver_unregister(struct mlxsw_driver *mlxsw_driver);
|
||||
|
||||
|
|
|
@ -409,9 +409,7 @@ static int mlxsw_sp_fw_rev_validate(struct mlxsw_sp *mlxsw_sp)
|
|||
}
|
||||
if (MLXSW_SP_FWREV_MINOR_TO_BRANCH(rev->minor) ==
|
||||
MLXSW_SP_FWREV_MINOR_TO_BRANCH(req_rev->minor) &&
|
||||
(rev->minor > req_rev->minor ||
|
||||
(rev->minor == req_rev->minor &&
|
||||
rev->subminor >= req_rev->subminor)))
|
||||
mlxsw_core_fw_rev_minor_subminor_validate(rev, req_rev))
|
||||
return 0;
|
||||
|
||||
dev_info(mlxsw_sp->bus_info->dev, "The firmware version %d.%d.%d is incompatible with the driver\n",
|
||||
|
|
Loading…
Reference in New Issue