Commit fcb610a8 authored by Gal Pressman's avatar Gal Pressman Committed by Saeed Mahameed

net/mlx5: Parse module mapping using mlx5_ifc

The assumption that the first byte in the module mapping dword is the
module number shouldn't be hard-coded in the driver, but come from
mlx5_ifc structs.

While at it, fix the incorrect width for the 'rx_lane' and 'tx_lane'
fields.
Signed-off-by: default avatarGal Pressman <gal@nvidia.com>
Reviewed-by: default avatarMaxim Mikityanskiy <maximmi@nvidia.com>
Signed-off-by: default avatarSaeed Mahameed <saeedm@nvidia.com>
parent 271907ee
...@@ -275,7 +275,6 @@ static int mlx5_query_module_num(struct mlx5_core_dev *dev, int *module_num) ...@@ -275,7 +275,6 @@ static int mlx5_query_module_num(struct mlx5_core_dev *dev, int *module_num)
{ {
u32 in[MLX5_ST_SZ_DW(pmlp_reg)] = {0}; u32 in[MLX5_ST_SZ_DW(pmlp_reg)] = {0};
u32 out[MLX5_ST_SZ_DW(pmlp_reg)]; u32 out[MLX5_ST_SZ_DW(pmlp_reg)];
int module_mapping;
int err; int err;
MLX5_SET(pmlp_reg, in, local_port, 1); MLX5_SET(pmlp_reg, in, local_port, 1);
...@@ -284,8 +283,9 @@ static int mlx5_query_module_num(struct mlx5_core_dev *dev, int *module_num) ...@@ -284,8 +283,9 @@ static int mlx5_query_module_num(struct mlx5_core_dev *dev, int *module_num)
if (err) if (err)
return err; return err;
module_mapping = MLX5_GET(pmlp_reg, out, lane0_module_mapping); *module_num = MLX5_GET(lane_2_module_mapping,
*module_num = module_mapping & MLX5_EEPROM_IDENTIFIER_BYTE_MASK; MLX5_ADDR_OF(pmlp_reg, out, lane0_module_mapping),
module);
return 0; return 0;
} }
......
...@@ -9888,10 +9888,10 @@ struct mlx5_ifc_pcmr_reg_bits { ...@@ -9888,10 +9888,10 @@ struct mlx5_ifc_pcmr_reg_bits {
}; };
struct mlx5_ifc_lane_2_module_mapping_bits { struct mlx5_ifc_lane_2_module_mapping_bits {
u8 reserved_at_0[0x6]; u8 reserved_at_0[0x4];
u8 rx_lane[0x2]; u8 rx_lane[0x4];
u8 reserved_at_8[0x6]; u8 reserved_at_8[0x4];
u8 tx_lane[0x2]; u8 tx_lane[0x4];
u8 reserved_at_10[0x8]; u8 reserved_at_10[0x8];
u8 module[0x8]; u8 module[0x8];
}; };
......
...@@ -56,7 +56,6 @@ enum mlx5_an_status { ...@@ -56,7 +56,6 @@ enum mlx5_an_status {
MLX5_AN_LINK_DOWN = 4, MLX5_AN_LINK_DOWN = 4,
}; };
#define MLX5_EEPROM_IDENTIFIER_BYTE_MASK 0x000000ff
#define MLX5_I2C_ADDR_LOW 0x50 #define MLX5_I2C_ADDR_LOW 0x50
#define MLX5_I2C_ADDR_HIGH 0x51 #define MLX5_I2C_ADDR_HIGH 0x51
#define MLX5_EEPROM_PAGE_LENGTH 256 #define MLX5_EEPROM_PAGE_LENGTH 256
......
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