Lines Matching refs:q

313 ionic_db_map(struct ionic_lif *lif, struct ionic_queue *q)  in ionic_db_map()  argument
315 return lif->kern_dbpage + q->hw_type; in ionic_db_map()
337 struct ionic_queue *q = &qcq->q; in ionic_dev_cmd_adminq_init() local
343 .q_init.type = q->type, in ionic_dev_cmd_adminq_init()
344 .q_init.index = q->index, in ionic_dev_cmd_adminq_init()
346 .q_init.pid = q->pid, in ionic_dev_cmd_adminq_init()
348 .q_init.ring_size = rte_log2_u32(q->num_descs), in ionic_dev_cmd_adminq_init()
349 .q_init.ring_base = q->base_pa, in ionic_dev_cmd_adminq_init()
392 ionic_cq_bind(struct ionic_cq *cq, struct ionic_queue *q) in ionic_cq_bind() argument
394 cq->bound_q = q; in ionic_cq_bind()
395 q->bound_cq = cq; in ionic_cq_bind()
421 struct ionic_queue *q, uint32_t index, uint32_t num_descs, in ionic_q_init() argument
434 q->lif = lif; in ionic_q_init()
435 q->idev = idev; in ionic_q_init()
436 q->index = index; in ionic_q_init()
437 q->num_descs = num_descs; in ionic_q_init()
438 q->desc_size = desc_size; in ionic_q_init()
439 q->sg_desc_size = sg_desc_size; in ionic_q_init()
440 q->head_idx = 0; in ionic_q_init()
441 q->tail_idx = 0; in ionic_q_init()
442 q->pid = pid; in ionic_q_init()
448 ionic_q_map(struct ionic_queue *q, void *base, rte_iova_t base_pa) in ionic_q_map() argument
450 q->base = base; in ionic_q_map()
451 q->base_pa = base_pa; in ionic_q_map()
455 ionic_q_sg_map(struct ionic_queue *q, void *base, rte_iova_t base_pa) in ionic_q_sg_map() argument
457 q->sg_base = base; in ionic_q_sg_map()
458 q->sg_base_pa = base_pa; in ionic_q_sg_map()
462 ionic_q_flush(struct ionic_queue *q) in ionic_q_flush() argument
464 writeq(IONIC_DBELL_QID(q->hw_index) | q->head_idx, q->db); in ionic_q_flush()
468 ionic_q_post(struct ionic_queue *q, bool ring_doorbell, desc_cb cb, in ionic_q_post() argument
471 struct ionic_desc_info *head = &q->info[q->head_idx]; in ionic_q_post()
476 q->head_idx = (q->head_idx + 1) & (q->num_descs - 1); in ionic_q_post()
479 ionic_q_flush(q); in ionic_q_post()
483 ionic_q_space_avail(struct ionic_queue *q) in ionic_q_space_avail() argument
485 uint32_t avail = q->tail_idx; in ionic_q_space_avail()
487 if (q->head_idx >= avail) in ionic_q_space_avail()
488 avail += q->num_descs - q->head_idx - 1; in ionic_q_space_avail()
490 avail -= q->head_idx + 1; in ionic_q_space_avail()
496 ionic_q_has_space(struct ionic_queue *q, uint32_t want) in ionic_q_has_space() argument
498 return ionic_q_space_avail(q) >= want; in ionic_q_has_space()
502 ionic_q_service(struct ionic_queue *q, uint32_t cq_desc_index, in ionic_q_service() argument
509 desc_info = &q->info[q->tail_idx]; in ionic_q_service()
512 desc_info->cb(q, q->tail_idx, cq_desc_index, in ionic_q_service()
518 curr_q_tail_idx = q->tail_idx; in ionic_q_service()
519 q->tail_idx = (q->tail_idx + 1) & (q->num_descs - 1); in ionic_q_service()
525 ionic_adminq_cb(struct ionic_queue *q, in ionic_adminq_cb() argument
530 struct ionic_admin_comp *cq_desc_base = q->bound_cq->base; in ionic_adminq_cb()
557 struct ionic_queue *adminq = &lif->adminqcq->q; in ionic_adminq_post()