Lines Matching defs:eqcr

356 	struct qm_eqcr eqcr;
411 static inline void eqcr_inc(struct qm_eqcr *eqcr)
414 struct qm_eqcr_entry *partial = eqcr->cursor + 1;
416 eqcr->cursor = eqcr_carryclear(partial);
417 if (partial != eqcr->cursor)
418 eqcr->vbit ^= QM_EQCR_VERB_VBIT;
426 struct qm_eqcr *eqcr = &portal->eqcr;
430 eqcr->ring = portal->addr.ce + QM_CL_EQCR;
431 eqcr->ci = qm_in(portal, QM_REG_EQCR_CI_CINH) & (QM_EQCR_SIZE - 1);
434 eqcr->cursor = eqcr->ring + pi;
435 eqcr->vbit = (qm_in(portal, QM_REG_EQCR_PI_CINH) & QM_EQCR_SIZE) ?
437 eqcr->available = QM_EQCR_SIZE - 1 -
438 dpaa_cyc_diff(QM_EQCR_SIZE, eqcr->ci, pi);
439 eqcr->ithresh = qm_in(portal, QM_REG_EQCR_ITR);
441 eqcr->busy = 0;
442 eqcr->pmode = pmode;
454 struct qm_eqcr *eqcr = &portal->eqcr;
458 DPAA_ASSERT(!eqcr->busy);
459 if (pi != eqcr_ptr2idx(eqcr->cursor))
461 if (ci != eqcr->ci)
463 if (eqcr->ci != eqcr_ptr2idx(eqcr->cursor))
470 struct qm_eqcr *eqcr = &portal->eqcr;
472 DPAA_ASSERT(!eqcr->busy);
473 if (!eqcr->available)
477 eqcr->busy = 1;
479 dpaa_zero(eqcr->cursor);
480 return eqcr->cursor;
486 struct qm_eqcr *eqcr = &portal->eqcr;
489 DPAA_ASSERT(!eqcr->busy);
490 if (!eqcr->available) {
491 old_ci = eqcr->ci;
492 eqcr->ci = qm_ce_in(portal, QM_CL_EQCR_CI_CENA) &
494 diff = dpaa_cyc_diff(QM_EQCR_SIZE, old_ci, eqcr->ci);
495 eqcr->available += diff;
500 eqcr->busy = 1;
502 dpaa_zero(eqcr->cursor);
503 return eqcr->cursor;
506 static inline void eqcr_commit_checks(struct qm_eqcr *eqcr)
508 DPAA_ASSERT(eqcr->busy);
509 DPAA_ASSERT(!(be32_to_cpu(eqcr->cursor->fqid) & ~QM_FQID_MASK));
510 DPAA_ASSERT(eqcr->available >= 1);
515 struct qm_eqcr *eqcr = &portal->eqcr;
518 eqcr_commit_checks(eqcr);
519 DPAA_ASSERT(eqcr->pmode == qm_eqcr_pvb);
521 eqcursor = eqcr->cursor;
522 eqcursor->_ncw_verb = myverb | eqcr->vbit;
524 eqcr_inc(eqcr);
525 eqcr->available--;
527 eqcr->busy = 0;
538 struct qm_eqcr *eqcr = &portal->eqcr;
539 u8 diff, old_ci = eqcr->ci;
541 eqcr->ci = qm_ce_in(portal, QM_CL_EQCR_CI_CENA) & (QM_EQCR_SIZE - 1);
543 diff = dpaa_cyc_diff(QM_EQCR_SIZE, old_ci, eqcr->ci);
544 eqcr->available += diff;
550 struct qm_eqcr *eqcr = &portal->eqcr;
552 eqcr->ithresh = ithresh;
558 struct qm_eqcr *eqcr = &portal->eqcr;
560 return eqcr->available;
565 struct qm_eqcr *eqcr = &portal->eqcr;
567 return QM_EQCR_SIZE - 1 - eqcr->available;