uint8_t bm_rcr_cce_update(struct bm_portal *portal) { register struct bm_rcr *rcr = &portal->rcr; uint8_t diff, old_ci = rcr->ci; ASSERT_COND(rcr->cmode == e_BmPortalRcrCCE); rcr->ci = (uint8_t)(bm_cl_in(RCR_CI) & (BM_RCR_SIZE - 1)); bm_cl_invalidate(RCR_CI); diff = cyc_diff(BM_RCR_SIZE, old_ci, rcr->ci); rcr->available += diff; return diff; }
static u8 bm_rcr_cce_update(struct bm_portal *portal) { struct bm_rcr *rcr = &portal->rcr; u8 diff, old_ci = rcr->ci; DPAA_ASSERT(rcr->cmode == bm_rcr_cce); rcr->ci = bm_ce_in(portal, BM_CL_RCR_CI_CENA) & (BM_RCR_SIZE - 1); bm_cl_invalidate(portal, BM_CL_RCR_CI_CENA); diff = dpaa_cyc_diff(BM_RCR_SIZE, old_ci, rcr->ci); rcr->available += diff; return diff; }
void bm_rcr_pce_prefetch(struct bm_portal *portal) { ASSERT_COND(((struct bm_rcr *)&portal->rcr)->pmode == e_BmPortalPCE); bm_cl_invalidate(RCR_PI); bm_cl_touch_rw(RCR_PI); }