Lines Matching refs:mrif
215 static unsigned long imsic_mrif_atomic_rmw(struct imsic_mrif *mrif,
235 static unsigned long imsic_mrif_atomic_or(struct imsic_mrif *mrif,
247 static u32 imsic_mrif_topei(struct imsic_mrif *mrif, u32 nr_eix, u32 nr_msis)
252 unsigned long eithreshold = imsic_mrif_atomic_read(mrif,
253 &mrif->eithreshold);
258 eix = &mrif->eix[ei];
259 eipend[0] = imsic_mrif_atomic_read(mrif, &eix->eie[0]) &
260 imsic_mrif_atomic_read(mrif, &eix->eip[0]);
262 eipend[1] = imsic_mrif_atomic_read(mrif, &eix->eie[1]) &
263 imsic_mrif_atomic_read(mrif, &eix->eip[1]);
309 static int imsic_mrif_rmw(struct imsic_mrif *mrif, u32 nr_eix,
319 old_val = imsic_mrif_atomic_rmw(mrif, &mrif->eidelivery,
323 old_val = imsic_mrif_atomic_rmw(mrif, &mrif->eithreshold,
338 eix = &mrif->eix[num / 2];
352 old_val = imsic_mrif_atomic_rmw(mrif, ei, new_val, wr_mask);
368 struct imsic_mrif *mrif;
376 struct imsic_mrif *mrif = idata->mrif;
392 mrif->eidelivery = imsic_vs_csr_swap(IMSIC_EIDELIVERY, 0);
393 mrif->eithreshold = imsic_vs_csr_swap(IMSIC_EITHRESHOLD, 0);
395 eix = &mrif->eix[i];
404 mrif->eidelivery = imsic_vs_csr_read(IMSIC_EIDELIVERY);
405 mrif->eithreshold = imsic_vs_csr_read(IMSIC_EITHRESHOLD);
407 eix = &mrif->eix[i];
422 bool clear, struct imsic_mrif *mrif)
434 idata.mrif = mrif;
550 struct imsic_mrif *mrif)
573 eix = &mrif->eix[i];
581 imsic_vs_csr_write(IMSIC_EITHRESHOLD, mrif->eithreshold);
582 imsic_vs_csr_write(IMSIC_EIDELIVERY, mrif->eidelivery);
616 struct imsic_mrif *mrif = imsic->swfile;
627 if (imsic_mrif_atomic_read(mrif, &mrif->eidelivery) &&
628 imsic_mrif_topei(mrif, imsic->nr_eix, imsic->nr_msis))
637 struct imsic_mrif *mrif)
648 memcpy(mrif, imsic->swfile, sizeof(*mrif));
656 struct imsic_mrif *mrif)
663 imsic_mrif_atomic_write(smrif, &smrif->eidelivery, mrif->eidelivery);
664 imsic_mrif_atomic_write(smrif, &smrif->eithreshold, mrif->eithreshold);
667 eix = &mrif->eix[i];