Lines Matching refs:iq
425 mlx5e_rl_post_sq_remap_wqe(struct mlx5e_iq *iq, u32 scq_handle, u32 sq_handle, in mlx5e_rl_post_sq_remap_wqe() argument
433 mtx_lock(&iq->lock); in mlx5e_rl_post_sq_remap_wqe()
434 pi = mlx5e_iq_get_producer_index(iq); in mlx5e_rl_post_sq_remap_wqe()
436 mtx_unlock(&iq->lock); in mlx5e_rl_post_sq_remap_wqe()
439 wqe = mlx5_wq_cyc_get_wqe(&iq->wq, pi); in mlx5e_rl_post_sq_remap_wqe()
446 wqe->ctrl.opmod_idx_opcode = cpu_to_be32((iq->pc << 8) | in mlx5e_rl_post_sq_remap_wqe()
448 wqe->ctrl.qpn_ds = cpu_to_be32((iq->sqn << 8) | ds_cnt); in mlx5e_rl_post_sq_remap_wqe()
449 wqe->ctrl.imm = cpu_to_be32(iq->priv->tisn[0] << 8); in mlx5e_rl_post_sq_remap_wqe()
453 memcpy(iq->doorbell.d32, &wqe->ctrl, sizeof(iq->doorbell.d32)); in mlx5e_rl_post_sq_remap_wqe()
455 iq->data[pi].num_wqebbs = DIV_ROUND_UP(ds_cnt, MLX5_SEND_WQEBB_NUM_DS); in mlx5e_rl_post_sq_remap_wqe()
456 iq->data[pi].p_refcount = &sq_channel->refcount; in mlx5e_rl_post_sq_remap_wqe()
457 atomic_add_int(iq->data[pi].p_refcount, 1); in mlx5e_rl_post_sq_remap_wqe()
458 iq->pc += iq->data[pi].num_wqebbs; in mlx5e_rl_post_sq_remap_wqe()
460 mlx5e_iq_notify_hw(iq); in mlx5e_rl_post_sq_remap_wqe()
462 mtx_unlock(&iq->lock); in mlx5e_rl_post_sq_remap_wqe()
486 error = mlx5e_rl_post_sq_remap_wqe(&iq_channel->iq, scq_handle, in mlx5e_rl_remap_sq()