Lines Matching refs:cqn

104 void mlx4_cq_completion(struct mlx4_dev *dev, u32 cqn)
110 cqn & (dev->caps.num_cqs - 1));
114 mlx4_dbg(dev, "Completion event for bogus CQ %08x\n", cqn);
126 void mlx4_cq_event(struct mlx4_dev *dev, u32 cqn, int event_type)
132 cq = radix_tree_lookup(&cq_table->tree, cqn & (dev->caps.num_cqs - 1));
136 mlx4_dbg(dev, "Async event for bogus CQ %08x\n", cqn);
184 err = mlx4_MODIFY_CQ(dev, mailbox, cq->cqn, 1);
210 err = mlx4_MODIFY_CQ(dev, mailbox, cq->cqn, 0);
217 int __mlx4_cq_alloc_icm(struct mlx4_dev *dev, int *cqn)
223 *cqn = mlx4_bitmap_alloc(&cq_table->bitmap);
224 if (*cqn == -1)
227 err = mlx4_table_get(dev, &cq_table->table, *cqn);
231 err = mlx4_table_get(dev, &cq_table->cmpt_table, *cqn);
237 mlx4_table_put(dev, &cq_table->table, *cqn);
240 mlx4_bitmap_free(&cq_table->bitmap, *cqn, MLX4_NO_RR);
244 static int mlx4_cq_alloc_icm(struct mlx4_dev *dev, int *cqn, u8 usage)
257 *cqn = get_param_l(&out_param);
261 return __mlx4_cq_alloc_icm(dev, cqn);
264 void __mlx4_cq_free_icm(struct mlx4_dev *dev, int cqn)
269 mlx4_table_put(dev, &cq_table->cmpt_table, cqn);
270 mlx4_table_put(dev, &cq_table->table, cqn);
271 mlx4_bitmap_free(&cq_table->bitmap, cqn, MLX4_NO_RR);
274 static void mlx4_cq_free_icm(struct mlx4_dev *dev, int cqn)
280 set_param_l(&in_param, cqn);
285 mlx4_warn(dev, "Failed freeing cq:%d\n", cqn);
287 __mlx4_cq_free_icm(dev, cqn);
360 err = mlx4_cq_alloc_icm(dev, &cq->cqn, cq->usage);
365 err = radix_tree_insert(&cq_table->tree, cq->cqn, cq);
404 err = mlx4_SW2HW_CQ(dev, mailbox, cq->cqn, sw_cq_init);
426 radix_tree_delete(&cq_table->tree, cq->cqn);
430 mlx4_cq_free_icm(dev, cq->cqn);
442 err = mlx4_HW2SW_CQ(dev, NULL, cq->cqn);
444 mlx4_warn(dev, "HW2SW_CQ failed (%d) for CQN %06x\n", err, cq->cqn);
447 radix_tree_delete(&cq_table->tree, cq->cqn);
459 mlx4_cq_free_icm(dev, cq->cqn);