The dedicated MLX5_CMD_OP_ACCESS_REGISTER_USER opcode
must be used to read hardware register content from
unprotected mode.

Fixes: 737f44a25d97 ("common/mlx5: add register access DevX routine")

Signed-off-by: Viacheslav Ovsiienko <viachesl...@mellanox.com>
---
 drivers/common/mlx5/mlx5_devx_cmds.c | 3 ++-
 drivers/common/mlx5/mlx5_prm.h       | 1 +
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/common/mlx5/mlx5_devx_cmds.c 
b/drivers/common/mlx5/mlx5_devx_cmds.c
index 0cfa4dc..9f2f706 100644
--- a/drivers/common/mlx5/mlx5_devx_cmds.c
+++ b/drivers/common/mlx5/mlx5_devx_cmds.c
@@ -44,7 +44,8 @@
                DRV_LOG(ERR, "Not enough  buffer for register read data");
                return -1;
        }
-       MLX5_SET(access_register_in, in, opcode, MLX5_CMD_OP_ACCESS_REGISTER);
+       MLX5_SET(access_register_in, in, opcode,
+                MLX5_CMD_OP_ACCESS_REGISTER_USER);
        MLX5_SET(access_register_in, in, op_mod,
                                        MLX5_ACCESS_REGISTER_IN_OP_MOD_READ);
        MLX5_SET(access_register_in, in, register_id, reg_id);
diff --git a/drivers/common/mlx5/mlx5_prm.h b/drivers/common/mlx5/mlx5_prm.h
index ec3b600..aba0368 100644
--- a/drivers/common/mlx5/mlx5_prm.h
+++ b/drivers/common/mlx5/mlx5_prm.h
@@ -806,6 +806,7 @@ enum {
        MLX5_CMD_OP_CREATE_GENERAL_OBJECT = 0xa00,
        MLX5_CMD_OP_MODIFY_GENERAL_OBJECT = 0xa01,
        MLX5_CMD_OP_QUERY_GENERAL_OBJECT = 0xa02,
+       MLX5_CMD_OP_ACCESS_REGISTER_USER = 0xB0C,
 };
 
 enum {
-- 
1.8.3.1

Reply via email to