Lines Matching full:trans
33 #include <dev/mlx5/mlx5_fpga/trans.h>
66 return &fdev->trans->transactions[tid]; in find_tid()
74 spin_lock_irqsave(&fdev->trans->lock, flags); in alloc_tid()
76 if (list_empty(&fdev->trans->free_queue)) { in alloc_tid()
82 ret = list_first_entry(&fdev->trans->free_queue, in alloc_tid()
88 spin_unlock_irqrestore(&fdev->trans->lock, flags); in alloc_tid()
97 spin_lock_irqsave(&fdev->trans->lock, flags); in free_tid()
98 list_add_tail(&trans_priv->list_item, &fdev->trans->free_queue); in free_tid()
99 spin_unlock_irqrestore(&fdev->trans->lock, flags); in free_tid()
111 spin_lock_irqsave(&fdev->trans->lock, flags); in trans_complete()
114 spin_unlock_irqrestore(&fdev->trans->lock, flags); in trans_complete()
138 spin_lock_irqsave(&fdev->trans->lock, flags); in trans_send_complete()
141 spin_unlock_irqrestore(&fdev->trans->lock, flags); in trans_send_complete()
182 int mlx5_fpga_trans_exec(const struct mlx5_fpga_transaction *trans) in mlx5_fpga_trans_exec() argument
184 struct mlx5_fpga_conn *conn = trans->conn; in mlx5_fpga_trans_exec()
189 if (!trans->complete1) { in mlx5_fpga_trans_exec()
195 err = trans_validate(conn->fdev, trans->addr, trans->size); in mlx5_fpga_trans_exec()
204 trans_priv->user_trans = trans; in mlx5_fpga_trans_exec()
210 (trans->direction == MLX5_FPGA_WRITE) ? in mlx5_fpga_trans_exec()
214 MLX5_SET(fpga_shell_qp_packet, header, len, trans->size); in mlx5_fpga_trans_exec()
215 MLX5_SET64(fpga_shell_qp_packet, header, address, trans->addr); in mlx5_fpga_trans_exec()
219 if (trans->direction == MLX5_FPGA_WRITE) { in mlx5_fpga_trans_exec()
220 trans_priv->buf.sg[1].data = trans->data; in mlx5_fpga_trans_exec()
221 trans_priv->buf.sg[1].size = trans->size; in mlx5_fpga_trans_exec()
311 fdev->trans = kzalloc(sizeof(*fdev->trans), GFP_KERNEL); in mlx5_fpga_trans_device_init()
312 if (!fdev->trans) { in mlx5_fpga_trans_device_init()
317 INIT_LIST_HEAD(&fdev->trans->free_queue); in mlx5_fpga_trans_device_init()
318 for (tid = 0; tid < ARRAY_SIZE(fdev->trans->transactions); tid++) { in mlx5_fpga_trans_device_init()
319 fdev->trans->transactions[tid].tid = tid; in mlx5_fpga_trans_device_init()
320 list_add_tail(&fdev->trans->transactions[tid].list_item, in mlx5_fpga_trans_device_init()
321 &fdev->trans->free_queue); in mlx5_fpga_trans_device_init()
324 spin_lock_init(&fdev->trans->lock); in mlx5_fpga_trans_device_init()
332 kfree(fdev->trans); in mlx5_fpga_trans_device_cleanup()