common/mlx5: fix user mode register access command
To detect the timestamp mode configured on the NIC the mlx5
PMD uses the firmware command ACCESS_REGISTER_USER. This
command is relatively new and might be not supported by
older firmware versions and was rejected, causing annoying
messages in kernel log.
This patch adds the attribute flag check whether firmware
supports the command and avoid the call if it does not.
Fixes: bb7ef9a962
("common/mlx5: add register access DevX routine")
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
This commit is contained in:
parent
6563cf9238
commit
972a1bf812
@ -688,6 +688,8 @@ mlx5_devx_cmd_query_hca_attr(void *ctx,
|
||||
relaxed_ordering_write);
|
||||
attr->relaxed_ordering_read = MLX5_GET(cmd_hca_cap, hcattr,
|
||||
relaxed_ordering_read);
|
||||
attr->access_register_user = MLX5_GET(cmd_hca_cap, hcattr,
|
||||
access_register_user);
|
||||
attr->eth_net_offloads = MLX5_GET(cmd_hca_cap, hcattr,
|
||||
eth_net_offloads);
|
||||
attr->eth_virt = MLX5_GET(cmd_hca_cap, hcattr, eth_virt);
|
||||
|
@ -93,6 +93,7 @@ struct mlx5_hca_attr {
|
||||
uint32_t vhca_id:16;
|
||||
uint32_t relaxed_ordering_write:1;
|
||||
uint32_t relaxed_ordering_read:1;
|
||||
uint32_t access_register_user:1;
|
||||
uint32_t wqe_index_ignore:1;
|
||||
uint32_t cross_channel:1;
|
||||
uint32_t non_wire_sq:1; /* SQ with non-wire ops is supported. */
|
||||
|
@ -1104,7 +1104,8 @@ struct mlx5_ifc_cmd_hca_cap_bits {
|
||||
u8 log_max_eq_sz[0x8];
|
||||
u8 relaxed_ordering_write[0x1];
|
||||
u8 relaxed_ordering_read[0x1];
|
||||
u8 log_max_mkey[0x6];
|
||||
u8 access_register_user[0x1];
|
||||
u8 log_max_mkey[0x5];
|
||||
u8 reserved_at_f0[0x8];
|
||||
u8 dump_fill_mkey[0x1];
|
||||
u8 reserved_at_f9[0x3];
|
||||
|
@ -1067,9 +1067,10 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,
|
||||
if (config->devx) {
|
||||
uint32_t reg[MLX5_ST_SZ_DW(register_mtutc)];
|
||||
|
||||
err = mlx5_devx_cmd_register_read
|
||||
(sh->ctx, MLX5_REGISTER_ID_MTUTC, 0,
|
||||
reg, MLX5_ST_SZ_DW(register_mtutc));
|
||||
err = config->hca_attr.access_register_user ?
|
||||
mlx5_devx_cmd_register_read
|
||||
(sh->ctx, MLX5_REGISTER_ID_MTUTC, 0,
|
||||
reg, MLX5_ST_SZ_DW(register_mtutc)) : ENOTSUP;
|
||||
if (!err) {
|
||||
uint32_t ts_mode;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user