Commit 5cfa030a authored by Vadim Pasternak's avatar Vadim Pasternak Committed by David S. Miller

mlxsw: reg: Extend MGPIR register with new field exposing the number of QSFP modules

Extend MGPIR - Management General Peripheral Information Register
with new field "num_of_modules" exposing the number of modules
supported by specific system.
Signed-off-by: default avatarVadim Pasternak <vadimp@mellanox.com>
Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 0eb8516b
...@@ -590,7 +590,7 @@ static int mlxsw_hwmon_gearbox_init(struct mlxsw_hwmon *mlxsw_hwmon) ...@@ -590,7 +590,7 @@ static int mlxsw_hwmon_gearbox_init(struct mlxsw_hwmon *mlxsw_hwmon)
if (err) if (err)
return err; return err;
mlxsw_reg_mgpir_unpack(mgpir_pl, &gbox_num, NULL, NULL); mlxsw_reg_mgpir_unpack(mgpir_pl, &gbox_num, NULL, NULL, NULL);
if (!gbox_num) if (!gbox_num)
return 0; return 0;
......
...@@ -913,7 +913,8 @@ mlxsw_thermal_gearboxes_init(struct device *dev, struct mlxsw_core *core, ...@@ -913,7 +913,8 @@ mlxsw_thermal_gearboxes_init(struct device *dev, struct mlxsw_core *core,
if (err) if (err)
return err; return err;
mlxsw_reg_mgpir_unpack(mgpir_pl, &thermal->tz_gearbox_num, NULL, NULL); mlxsw_reg_mgpir_unpack(mgpir_pl, &thermal->tz_gearbox_num, NULL, NULL,
NULL);
if (!thermal->tz_gearbox_num) if (!thermal->tz_gearbox_num)
return 0; return 0;
......
...@@ -9531,6 +9531,12 @@ MLXSW_ITEM32(reg, mgpir, devices_per_flash, 0x00, 16, 8); ...@@ -9531,6 +9531,12 @@ MLXSW_ITEM32(reg, mgpir, devices_per_flash, 0x00, 16, 8);
*/ */
MLXSW_ITEM32(reg, mgpir, num_of_devices, 0x00, 0, 8); MLXSW_ITEM32(reg, mgpir, num_of_devices, 0x00, 0, 8);
/* num_of_modules
* Number of modules.
* Access: RO
*/
MLXSW_ITEM32(reg, mgpir, num_of_modules, 0x04, 0, 8);
static inline void mlxsw_reg_mgpir_pack(char *payload) static inline void mlxsw_reg_mgpir_pack(char *payload)
{ {
MLXSW_REG_ZERO(mgpir, payload); MLXSW_REG_ZERO(mgpir, payload);
...@@ -9539,7 +9545,7 @@ static inline void mlxsw_reg_mgpir_pack(char *payload) ...@@ -9539,7 +9545,7 @@ static inline void mlxsw_reg_mgpir_pack(char *payload)
static inline void static inline void
mlxsw_reg_mgpir_unpack(char *payload, u8 *num_of_devices, mlxsw_reg_mgpir_unpack(char *payload, u8 *num_of_devices,
enum mlxsw_reg_mgpir_device_type *device_type, enum mlxsw_reg_mgpir_device_type *device_type,
u8 *devices_per_flash) u8 *devices_per_flash, u8 *num_of_modules)
{ {
if (num_of_devices) if (num_of_devices)
*num_of_devices = mlxsw_reg_mgpir_num_of_devices_get(payload); *num_of_devices = mlxsw_reg_mgpir_num_of_devices_get(payload);
...@@ -9548,6 +9554,8 @@ mlxsw_reg_mgpir_unpack(char *payload, u8 *num_of_devices, ...@@ -9548,6 +9554,8 @@ mlxsw_reg_mgpir_unpack(char *payload, u8 *num_of_devices,
if (devices_per_flash) if (devices_per_flash)
*devices_per_flash = *devices_per_flash =
mlxsw_reg_mgpir_devices_per_flash_get(payload); mlxsw_reg_mgpir_devices_per_flash_get(payload);
if (num_of_modules)
*num_of_modules = mlxsw_reg_mgpir_num_of_modules_get(payload);
} }
/* TNGCR - Tunneling NVE General Configuration Register /* TNGCR - Tunneling NVE General Configuration Register
......
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