diff options
author | Yevgeny Petrilin <yevgenyp@mellanox.co.il> | 2008-12-22 10:15:03 -0500 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2008-12-22 10:15:03 -0500 |
commit | b8dd786f9417e5885929bfe33a235c76a9c1c569 (patch) | |
tree | 16b38c672980d142ffa0ac0ccdeb4af19c20cc31 /drivers/net/mlx4/mlx4.h | |
parent | 061e41fdb5047b1fb161e89664057835935ca1d2 (diff) |
mlx4_core: Add support for multiple completion event vectors
When using MSI-X mode, create a completion event queue for each CPU.
Report the number of completion EQs in a new struct mlx4_caps member,
num_comp_vectors, and extend the mlx4_cq_alloc() interface with a
vector parameter so that consumers can specify which completion EQ
should be used to report events for the CQ being created.
Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/net/mlx4/mlx4.h')
-rw-r--r-- | drivers/net/mlx4/mlx4.h | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/drivers/net/mlx4/mlx4.h b/drivers/net/mlx4/mlx4.h index 34c909deaff3..e0213bad61c7 100644 --- a/drivers/net/mlx4/mlx4.h +++ b/drivers/net/mlx4/mlx4.h | |||
@@ -63,12 +63,6 @@ enum { | |||
63 | }; | 63 | }; |
64 | 64 | ||
65 | enum { | 65 | enum { |
66 | MLX4_EQ_ASYNC, | ||
67 | MLX4_EQ_COMP, | ||
68 | MLX4_NUM_EQ | ||
69 | }; | ||
70 | |||
71 | enum { | ||
72 | MLX4_NUM_PDS = 1 << 15 | 66 | MLX4_NUM_PDS = 1 << 15 |
73 | }; | 67 | }; |
74 | 68 | ||
@@ -205,10 +199,11 @@ struct mlx4_cq_table { | |||
205 | 199 | ||
206 | struct mlx4_eq_table { | 200 | struct mlx4_eq_table { |
207 | struct mlx4_bitmap bitmap; | 201 | struct mlx4_bitmap bitmap; |
202 | char *irq_names; | ||
208 | void __iomem *clr_int; | 203 | void __iomem *clr_int; |
209 | void __iomem *uar_map[(MLX4_NUM_EQ + 6) / 4]; | 204 | void __iomem **uar_map; |
210 | u32 clr_mask; | 205 | u32 clr_mask; |
211 | struct mlx4_eq eq[MLX4_NUM_EQ]; | 206 | struct mlx4_eq *eq; |
212 | u64 icm_virt; | 207 | u64 icm_virt; |
213 | struct page *icm_page; | 208 | struct page *icm_page; |
214 | dma_addr_t icm_dma; | 209 | dma_addr_t icm_dma; |
@@ -328,6 +323,9 @@ void mlx4_bitmap_cleanup(struct mlx4_bitmap *bitmap); | |||
328 | 323 | ||
329 | int mlx4_reset(struct mlx4_dev *dev); | 324 | int mlx4_reset(struct mlx4_dev *dev); |
330 | 325 | ||
326 | int mlx4_alloc_eq_table(struct mlx4_dev *dev); | ||
327 | void mlx4_free_eq_table(struct mlx4_dev *dev); | ||
328 | |||
331 | int mlx4_init_pd_table(struct mlx4_dev *dev); | 329 | int mlx4_init_pd_table(struct mlx4_dev *dev); |
332 | int mlx4_init_uar_table(struct mlx4_dev *dev); | 330 | int mlx4_init_uar_table(struct mlx4_dev *dev); |
333 | int mlx4_init_mr_table(struct mlx4_dev *dev); | 331 | int mlx4_init_mr_table(struct mlx4_dev *dev); |