Lines Matching refs:eq

111 static inline void *ocrdma_get_eqe(struct ocrdma_eq *eq)
113 return eq->q.va + (eq->q.tail * sizeof(struct ocrdma_eqe));
116 static inline void ocrdma_eq_inc_tail(struct ocrdma_eq *eq)
118 eq->q.tail = (eq->q.tail + 1) & (OCRDMA_EQ_LEN - 1);
433 static int ocrdma_mbx_create_eq(struct ocrdma_dev *dev, struct ocrdma_eq *eq)
448 ocrdma_build_q_pages(&cmd->pa[0], cmd->num_pages, eq->q.dma,
453 eq->q.id = rsp->vector_eqid & 0xffff;
454 eq->vector = (rsp->vector_eqid >> 16) & 0xffff;
455 eq->q.created = true;
461 struct ocrdma_eq *eq, u16 q_len)
465 status = ocrdma_alloc_q(dev, &eq->q, OCRDMA_EQ_LEN,
470 status = ocrdma_mbx_create_eq(dev, eq);
473 eq->dev = dev;
474 ocrdma_ring_eq_db(dev, eq->q.id, true, true, 0);
478 ocrdma_free_q(dev, &eq->q);
482 int ocrdma_get_irq(struct ocrdma_dev *dev, struct ocrdma_eq *eq)
489 irq = dev->nic_info.msix.vector_list[eq->vector];
493 static void _ocrdma_destroy_eq(struct ocrdma_dev *dev, struct ocrdma_eq *eq)
495 if (eq->q.created) {
496 ocrdma_mbx_delete_q(dev, &eq->q, QTYPE_EQ);
497 ocrdma_free_q(dev, &eq->q);
501 static void ocrdma_destroy_eq(struct ocrdma_dev *dev, struct ocrdma_eq *eq)
508 ocrdma_ring_eq_db(dev, eq->q.id, false, false, 0);
510 irq = ocrdma_get_irq(dev, eq);
511 free_irq(irq, eq);
512 _ocrdma_destroy_eq(dev, eq);
525 struct ocrdma_queue_info *eq)
541 cmd->eqn = eq->id;
996 struct ocrdma_eq *eq = handle;
997 struct ocrdma_dev *dev = eq->dev;
1002 int budget = eq->cq_cnt;
1005 ptr = ocrdma_get_eqe(eq);
1012 eq->q.id, eqe.id_valid);
1017 /* ring eq doorbell as soon as its consumed. */
1018 ocrdma_ring_eq_db(dev, eq->q.id, false, true, 1);
1024 ocrdma_eq_inc_tail(eq);
1034 eq->aic_obj.eq_intr_cnt++;
1035 ocrdma_ring_eq_db(dev, eq->q.id, true, true, 0);
1850 /* shared eq between all the consumer cqs. */
3106 /* one eq is sufficient for data path to work */
3113 static int ocrdma_mbx_modify_eqd(struct ocrdma_dev *dev, struct ocrdma_eq *eq,
3128 cmd->cmd.set_eqd[i].eq_id = eq[i].q.id;
3131 (eq[i].aic_obj.prev_eqd * 65)/100;
3139 static int ocrdma_modify_eqd(struct ocrdma_dev *dev, struct ocrdma_eq *eq,
3146 ocrdma_mbx_modify_eqd(dev, &eq[i], num_eqs);
3151 ocrdma_mbx_modify_eqd(dev, eq, num);
3160 struct ocrdma_eq *eq = NULL;
3165 eq = &dev->eq_tbl[i];
3166 if (eq->aic_obj.eq_intr_cnt > eq->aic_obj.prev_eq_intr_cnt) {
3167 eq_intr = eq->aic_obj.eq_intr_cnt -
3168 eq->aic_obj.prev_eq_intr_cnt;
3170 (eq->aic_obj.prev_eqd == EQ_AIC_MIN_EQD)) {
3171 eq->aic_obj.prev_eqd = EQ_AIC_MAX_EQD;
3174 (eq->aic_obj.prev_eqd == EQ_AIC_MAX_EQD)) {
3175 eq->aic_obj.prev_eqd = EQ_AIC_MIN_EQD;
3179 eq->aic_obj.prev_eq_intr_cnt = eq->aic_obj.eq_intr_cnt;