gdma_queue
static void mana_ib_cq_handler(void *ctx, struct gdma_queue *gdma_cq)
struct gdma_queue *gdma_cq;
struct gdma_queue *gdma_cq = cq->queue.kmem;
struct gdma_queue *wq = qp->ud_qp.queues[MANA_UD_SEND_QUEUE].kmem;
struct gdma_queue *wq = qp->ud_qp.queues[MANA_UD_RECV_QUEUE].kmem;
struct gdma_queue *queue = cq->queue.kmem;
mana_ib_event_handler(void *ctx, struct gdma_queue *q, struct gdma_event *event)
mdev->eqs = kzalloc_objs(struct gdma_queue *,
struct gdma_queue *kmem;
struct gdma_queue *fatal_err_eq;
struct gdma_queue **eqs;
struct gdma_queue *queue = qp->ud_qp.queues[MANA_UD_RECV_QUEUE].kmem;
struct gdma_queue *queue = qp->ud_qp.queues[MANA_UD_SEND_QUEUE].kmem;
struct gdma_queue **queue_ptr)
struct gdma_queue *queue;
struct gdma_queue **queue_ptr)
struct gdma_queue *queue;
void mana_gd_destroy_queue(struct gdma_context *gc, struct gdma_queue *queue)
u32 mana_gd_wq_avail_space(struct gdma_queue *wq)
u8 *mana_gd_get_wqe_ptr(const struct gdma_queue *wq, u32 wqe_offset)
static void mana_gd_write_sgl(struct gdma_queue *wq, u8 *wqe_ptr,
int mana_gd_post_work_request(struct gdma_queue *wq,
int mana_gd_post_and_ring(struct gdma_queue *queue,
static int mana_gd_read_cqe(struct gdma_queue *cq, struct gdma_comp *comp)
int mana_gd_poll_cq(struct gdma_queue *cq, struct gdma_comp *comp, int num_cqe)
struct gdma_queue *eq;
struct gdma_queue *queue)
static int mana_gd_disable_queue(struct gdma_queue *queue)
void mana_gd_wq_ring_doorbell(struct gdma_context *gc, struct gdma_queue *queue)
void mana_gd_ring_cq(struct gdma_queue *cq, u8 arm_bit)
static void mana_gd_process_eqe(struct gdma_queue *eq)
struct gdma_queue *cq;
struct gdma_queue *eq = arg;
static int mana_gd_register_irq(struct gdma_queue *queue,
static void mana_gd_deregister_irq(struct gdma_queue *queue)
struct gdma_queue *eq;
int mana_gd_test_eq(struct gdma_context *gc, struct gdma_queue *eq)
struct gdma_queue *queue)
bool create_hwq, struct gdma_queue *queue)
struct gdma_queue *queue)
struct gdma_queue *queue)
struct gdma_queue **queue_ptr)
struct gdma_queue *queue;
static void mana_hwc_init_event_handler(void *ctx, struct gdma_queue *q_self,
struct gdma_queue *rq;
struct gdma_queue **queue)
struct gdma_queue *parent_eq,
struct gdma_queue **queue)
struct gdma_queue **queue)
static void mana_hwc_comp_event(void *ctx, struct gdma_queue *q_self)
struct gdma_queue *eq, *cq;
struct gdma_queue *queue;
struct gdma_queue *rq = hwc->rxq->gdma_wq;
struct gdma_queue *sq = hwc->txq->gdma_wq;
struct gdma_queue *eq = hwc->cq->gdma_eq;
struct gdma_queue *cq = hwc->cq->gdma_cq;
gc->cq_table = vcalloc(gc->max_num_cqs, sizeof(struct gdma_queue *));
static bool mana_can_tx(struct gdma_queue *wq)
struct gdma_queue *eq;
static int mana_move_wq_tail(struct gdma_queue *wq, u32 num_units)
struct gdma_queue *gdma_wq;
static int mana_cq_handler(void *context, struct gdma_queue *gdma_queue)
WARN_ON_ONCE(cq->gdma_cq != gdma_queue);
mana_gd_ring_cq(gdma_queue, SET_ARM_BIT);
mana_gd_ring_cq(gdma_queue, 0);
static void mana_schedule_napi(void *context, struct gdma_queue *gdma_queue)
struct gdma_queue *gdma_sq;
struct gdma_queue *gdma_q = filp->private_data;
struct gdma_queue;
struct gdma_queue *eq;
typedef void gdma_eq_callback(void *context, struct gdma_queue *q,
typedef void gdma_cq_callback(void *context, struct gdma_queue *q);
struct gdma_queue *parent; /* For CQ/EQ relationship */
struct gdma_queue *parent_eq;
struct gdma_queue **cq_table;
u8 *mana_gd_get_wqe_ptr(const struct gdma_queue *wq, u32 wqe_offset);
u32 mana_gd_wq_avail_space(struct gdma_queue *wq);
int mana_gd_test_eq(struct gdma_context *gc, struct gdma_queue *eq);
struct gdma_queue **queue_ptr);
struct gdma_queue **queue_ptr);
struct gdma_queue **queue_ptr);
void mana_gd_destroy_queue(struct gdma_context *gc, struct gdma_queue *queue);
int mana_gd_poll_cq(struct gdma_queue *cq, struct gdma_comp *comp, int num_cqe);
void mana_gd_ring_cq(struct gdma_queue *cq, u8 arm_bit);
int mana_gd_post_work_request(struct gdma_queue *wq,
int mana_gd_post_and_ring(struct gdma_queue *queue,
struct gdma_queue *queue);
struct gdma_queue *gdma_cq;
struct gdma_queue *gdma_eq;
struct gdma_queue *gdma_wq;
struct gdma_queue *gdma_cq;
struct gdma_queue *gdma_rq;
struct gdma_queue *gdma_sq;