Lines Matching refs:cqn

100 void mlx4_cq_completion(struct mlx4_dev *dev, u32 cqn)  in mlx4_cq_completion()  argument
105 cqn & (dev->caps.num_cqs - 1)); in mlx4_cq_completion()
107 mlx4_dbg(dev, "Completion event for bogus CQ %08x\n", cqn); in mlx4_cq_completion()
116 void mlx4_cq_event(struct mlx4_dev *dev, u32 cqn, int event_type) in mlx4_cq_event() argument
123 cq = radix_tree_lookup(&cq_table->tree, cqn & (dev->caps.num_cqs - 1)); in mlx4_cq_event()
130 mlx4_warn(dev, "Async event for bogus CQ %08x\n", cqn); in mlx4_cq_event()
178 err = mlx4_MODIFY_CQ(dev, mailbox, cq->cqn, 1); in mlx4_cq_modify()
204 err = mlx4_MODIFY_CQ(dev, mailbox, cq->cqn, 0); in mlx4_cq_resize()
211 int __mlx4_cq_alloc_icm(struct mlx4_dev *dev, int *cqn) in __mlx4_cq_alloc_icm() argument
217 *cqn = mlx4_bitmap_alloc(&cq_table->bitmap); in __mlx4_cq_alloc_icm()
218 if (*cqn == -1) in __mlx4_cq_alloc_icm()
221 err = mlx4_table_get(dev, &cq_table->table, *cqn, GFP_KERNEL); in __mlx4_cq_alloc_icm()
225 err = mlx4_table_get(dev, &cq_table->cmpt_table, *cqn, GFP_KERNEL); in __mlx4_cq_alloc_icm()
231 mlx4_table_put(dev, &cq_table->table, *cqn); in __mlx4_cq_alloc_icm()
234 mlx4_bitmap_free(&cq_table->bitmap, *cqn, MLX4_NO_RR); in __mlx4_cq_alloc_icm()
238 static int mlx4_cq_alloc_icm(struct mlx4_dev *dev, int *cqn) in mlx4_cq_alloc_icm() argument
250 *cqn = get_param_l(&out_param); in mlx4_cq_alloc_icm()
254 return __mlx4_cq_alloc_icm(dev, cqn); in mlx4_cq_alloc_icm()
257 void __mlx4_cq_free_icm(struct mlx4_dev *dev, int cqn) in __mlx4_cq_free_icm() argument
262 mlx4_table_put(dev, &cq_table->cmpt_table, cqn); in __mlx4_cq_free_icm()
263 mlx4_table_put(dev, &cq_table->table, cqn); in __mlx4_cq_free_icm()
264 mlx4_bitmap_free(&cq_table->bitmap, cqn, MLX4_NO_RR); in __mlx4_cq_free_icm()
267 static void mlx4_cq_free_icm(struct mlx4_dev *dev, int cqn) in mlx4_cq_free_icm() argument
273 set_param_l(&in_param, cqn); in mlx4_cq_free_icm()
278 mlx4_warn(dev, "Failed freeing cq:%d\n", cqn); in mlx4_cq_free_icm()
280 __mlx4_cq_free_icm(dev, cqn); in mlx4_cq_free_icm()
300 err = mlx4_cq_alloc_icm(dev, &cq->cqn); in mlx4_cq_alloc()
305 err = radix_tree_insert(&cq_table->tree, cq->cqn, cq); in mlx4_cq_alloc()
330 err = mlx4_SW2HW_CQ(dev, mailbox, cq->cqn); in mlx4_cq_alloc()
351 radix_tree_delete(&cq_table->tree, cq->cqn); in mlx4_cq_alloc()
355 mlx4_cq_free_icm(dev, cq->cqn); in mlx4_cq_alloc()
367 err = mlx4_HW2SW_CQ(dev, NULL, cq->cqn); in mlx4_cq_free()
369 mlx4_warn(dev, "HW2SW_CQ failed (%d) for CQN %06x\n", err, cq->cqn); in mlx4_cq_free()
374 radix_tree_delete(&cq_table->tree, cq->cqn); in mlx4_cq_free()
381 mlx4_cq_free_icm(dev, cq->cqn); in mlx4_cq_free()