net/mlx5_core: HW data structs/types definitions cleanup
[cascardo/linux.git] / include / linux / mlx5 / driver.h
index 9a90e75..3fd4fdc 100644 (file)
@@ -44,7 +44,6 @@
 
 #include <linux/mlx5/device.h>
 #include <linux/mlx5/doorbell.h>
-#include <linux/mlx5/mlx5_ifc.h>
 
 enum {
        MLX5_BOARD_ID_LEN = 64,
@@ -85,7 +84,7 @@ enum {
 };
 
 enum {
-       MLX5_MAX_EQ_NAME        = 32
+       MLX5_MAX_IRQ_NAME       = 32
 };
 
 enum {
@@ -278,7 +277,6 @@ struct mlx5_general_caps {
        u8      log_max_mkey;
        u8      log_max_pd;
        u8      log_max_srq;
-       u8      log_max_strq;
        u8      log_max_mrw_sz;
        u8      log_max_bsf_list_size;
        u8      log_max_klm_list_size;
@@ -334,8 +332,6 @@ struct mlx5_buf_list {
 
 struct mlx5_buf {
        struct mlx5_buf_list    direct;
-       struct mlx5_buf_list   *page_list;
-       int                     nbufs;
        int                     npages;
        int                     size;
        u8                      page_shift;
@@ -351,7 +347,6 @@ struct mlx5_eq {
        u8                      eqn;
        int                     nent;
        u64                     mask;
-       char                    name[MLX5_MAX_EQ_NAME];
        struct list_head        list;
        int                     index;
        struct mlx5_rsc_debug   *dbg;
@@ -414,7 +409,6 @@ struct mlx5_eq_table {
        struct mlx5_eq          pages_eq;
        struct mlx5_eq          async_eq;
        struct mlx5_eq          cmd_eq;
-       struct msix_entry       *msix_arr;
        int                     num_comp_vectors;
        /* protect EQs list
         */
@@ -467,9 +461,16 @@ struct mlx5_mr_table {
        struct radix_tree_root  tree;
 };
 
+struct mlx5_irq_info {
+       cpumask_var_t mask;
+       char name[MLX5_MAX_IRQ_NAME];
+};
+
 struct mlx5_priv {
        char                    name[MLX5_MAX_NAME_LEN];
        struct mlx5_eq_table    eq_table;
+       struct msix_entry       *msix_arr;
+       struct mlx5_irq_info    *irq_info;
        struct mlx5_uuar_info   uuari;
        MLX5_DECLARE_DOORBELL_LOCK(cq_uar_lock);
 
@@ -586,11 +587,7 @@ struct mlx5_pas {
 
 static inline void *mlx5_buf_offset(struct mlx5_buf *buf, int offset)
 {
-       if (likely(BITS_PER_LONG == 64 || buf->nbufs == 1))
                return buf->direct.buf + offset;
-       else
-               return buf->page_list[offset >> PAGE_SHIFT].buf +
-                       (offset & (PAGE_SIZE - 1));
 }
 
 extern struct workqueue_struct *mlx5_core_wq;
@@ -665,12 +662,13 @@ int mlx5_cmd_alloc_uar(struct mlx5_core_dev *dev, u32 *uarn);
 int mlx5_cmd_free_uar(struct mlx5_core_dev *dev, u32 uarn);
 int mlx5_alloc_uuars(struct mlx5_core_dev *dev, struct mlx5_uuar_info *uuari);
 int mlx5_free_uuars(struct mlx5_core_dev *dev, struct mlx5_uuar_info *uuari);
+int mlx5_alloc_map_uar(struct mlx5_core_dev *mdev, struct mlx5_uar *uar);
+void mlx5_unmap_free_uar(struct mlx5_core_dev *mdev, struct mlx5_uar *uar);
 void mlx5_health_cleanup(void);
 void  __init mlx5_health_init(void);
 void mlx5_start_health_poll(struct mlx5_core_dev *dev);
 void mlx5_stop_health_poll(struct mlx5_core_dev *dev);
-int mlx5_buf_alloc(struct mlx5_core_dev *dev, int size, int max_direct,
-                  struct mlx5_buf *buf);
+int mlx5_buf_alloc(struct mlx5_core_dev *dev, int size, struct mlx5_buf *buf);
 void mlx5_buf_free(struct mlx5_core_dev *dev, struct mlx5_buf *buf);
 struct mlx5_cmd_mailbox *mlx5_alloc_cmd_mailbox_chain(struct mlx5_core_dev *dev,
                                                      gfp_t flags, int npages);