Lines Matching defs:qpn
56 void mlx4_qp_event(struct mlx4_dev *dev, u32 qpn, int event_type)
63 qp = __mlx4_qp_lookup(dev, qpn);
70 mlx4_dbg(dev, "Async event for none existent QP %08x\n", qpn);
84 *proxy_qp0 = qp->qpn >= pf_proxy_offset && qp->qpn <= pf_proxy_offset + 1;
86 *real_qp0 = qp->qpn >= dev->phys_caps.base_sqpn &&
87 qp->qpn <= dev->phys_caps.base_sqpn + 1;
150 ret = mlx4_cmd(dev, 0, qp->qpn, 2,
155 port = (qp->qpn & 1) + 1;
179 cpu_to_be16(mlx4_qp_roce_entropy(dev, qp->qpn));
185 cpu_to_be32(qp->qpn);
188 qp->qpn | (!!sqd_event << 31),
193 port = (qp->qpn & 1) + 1;
313 int __mlx4_qp_alloc_icm(struct mlx4_dev *dev, int qpn)
319 err = mlx4_table_get(dev, &qp_table->qp_table, qpn);
323 err = mlx4_table_get(dev, &qp_table->auxc_table, qpn);
327 err = mlx4_table_get(dev, &qp_table->altc_table, qpn);
331 err = mlx4_table_get(dev, &qp_table->rdmarc_table, qpn);
335 err = mlx4_table_get(dev, &qp_table->cmpt_table, qpn);
342 mlx4_table_put(dev, &qp_table->rdmarc_table, qpn);
345 mlx4_table_put(dev, &qp_table->altc_table, qpn);
348 mlx4_table_put(dev, &qp_table->auxc_table, qpn);
351 mlx4_table_put(dev, &qp_table->qp_table, qpn);
357 static int mlx4_qp_alloc_icm(struct mlx4_dev *dev, int qpn)
362 set_param_l(¶m, qpn);
367 return __mlx4_qp_alloc_icm(dev, qpn);
370 void __mlx4_qp_free_icm(struct mlx4_dev *dev, int qpn)
375 mlx4_table_put(dev, &qp_table->cmpt_table, qpn);
376 mlx4_table_put(dev, &qp_table->rdmarc_table, qpn);
377 mlx4_table_put(dev, &qp_table->altc_table, qpn);
378 mlx4_table_put(dev, &qp_table->auxc_table, qpn);
379 mlx4_table_put(dev, &qp_table->qp_table, qpn);
382 static void mlx4_qp_free_icm(struct mlx4_dev *dev, int qpn)
387 set_param_l(&in_param, qpn);
391 mlx4_warn(dev, "Failed to free icm of qp:%d\n", qpn);
393 __mlx4_qp_free_icm(dev, qpn);
396 struct mlx4_qp *mlx4_qp_lookup(struct mlx4_dev *dev, u32 qpn)
403 qp = __mlx4_qp_lookup(dev, qpn);
409 int mlx4_qp_alloc(struct mlx4_dev *dev, int qpn, struct mlx4_qp *qp)
415 if (!qpn)
418 qp->qpn = qpn;
420 err = mlx4_qp_alloc_icm(dev, qpn);
425 err = radix_tree_insert(&dev->qp_table_tree, qp->qpn &
437 mlx4_qp_free_icm(dev, qpn);
443 int mlx4_update_qp(struct mlx4_dev *dev, u32 qpn,
509 err = mlx4_cmd(dev, mailbox->dma, qpn & 0xffffff, 0,
524 radix_tree_delete(&dev->qp_table_tree, qp->qpn & (dev->caps.num_qps - 1));
534 mlx4_qp_free_icm(dev, qp->qpn);
908 err = mlx4_cmd_box(dev, 0, mailbox->dma, qp->qpn, 0,
952 u16 mlx4_qp_roce_entropy(struct mlx4_dev *dev, u32 qpn)
958 qp.qpn = qpn;
963 u16 folded_src = folded_qp(qpn);
965 return (dest_qpn != qpn) ?