Merge branch 'mlx5-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mellanox...
[sfrench/cifs-2.6.git] / drivers / net / ethernet / mellanox / mlx5 / core / port.c
index 7b16a1188aabbd0041edf45f48e70f3e4c16b26d..289b29a23418337b101898138d311204cc684898 100644 (file)
 #include <linux/mlx5/port.h>
 #include "mlx5_core.h"
 
-int mlx5_core_access_reg(struct mlx5_core_dev *dev, void *data_in,
-                        int size_in, void *data_out, int size_out,
-                        u16 reg_id, int arg, int write)
+/* calling with verbose false will not print error to log */
+int mlx5_access_reg(struct mlx5_core_dev *dev, void *data_in, int size_in,
+                   void *data_out, int size_out, u16 reg_id, int arg,
+                   int write, bool verbose)
 {
        int outlen = MLX5_ST_SZ_BYTES(access_register_out) + size_out;
        int inlen = MLX5_ST_SZ_BYTES(access_register_in) + size_in;
@@ -57,7 +58,9 @@ int mlx5_core_access_reg(struct mlx5_core_dev *dev, void *data_in,
        MLX5_SET(access_register_in, in, argument, arg);
        MLX5_SET(access_register_in, in, register_id, reg_id);
 
-       err = mlx5_cmd_exec(dev, in, inlen, out, outlen);
+       err = mlx5_cmd_do(dev, in, inlen, out, outlen);
+       if (verbose)
+               err = mlx5_cmd_check(dev, err, in, out);
        if (err)
                goto out;
 
@@ -69,6 +72,15 @@ out:
        kvfree(in);
        return err;
 }
+EXPORT_SYMBOL_GPL(mlx5_access_reg);
+
+int mlx5_core_access_reg(struct mlx5_core_dev *dev, void *data_in,
+                        int size_in, void *data_out, int size_out,
+                        u16 reg_id, int arg, int write)
+{
+       return mlx5_access_reg(dev, data_in, size_in, data_out, size_out,
+                              reg_id, arg, write, true);
+}
 EXPORT_SYMBOL_GPL(mlx5_core_access_reg);
 
 int mlx5_query_pcam_reg(struct mlx5_core_dev *dev, u32 *pcam, u8 feature_group,