Lines Matching refs:tfh

313 			struct gru_tlb_fault_handle *tfh,
333 if (ret || tfh_write_only(tfh, gpa, GAA_RAM, vaddr, asid, write,
337 "%s: gid %d, gts 0x%p, tfh 0x%p, vaddr 0x%lx, asid 0x%x, rw %d, ps %d, gpa 0x%lx\n",
338 atomic ? "atomic" : "non-atomic", gru->gs_gid, gts, tfh,
357 struct gru_tlb_fault_handle *tfh,
376 cbe = gru_tfh_to_cbe(tfh);
385 if (tfh->status != TFHSTATUS_EXCEPTION) {
386 gru_flush_cache(tfh);
388 if (tfh->status != TFHSTATUS_EXCEPTION)
392 if (tfh->state == TFHSTATE_IDLE)
394 if (tfh->state == TFHSTATE_MISS_FMM && cbk)
397 write = (tfh->cause & TFHCAUSE_TLB_MOD) != 0;
398 vaddr = tfh->missvaddr;
399 asid = tfh->missasid;
400 indexway = tfh->indexway;
428 gru_preload_tlb(gru, gts, atomic, vaddr, asid, write, tlb_preload_count, tfh, cbe);
434 tfh_write_restart(tfh, gpa, GAA_RAM, vaddr, asid, write,
437 "%s: gid %d, gts 0x%p, tfh 0x%p, vaddr 0x%lx, asid 0x%x, indexway 0x%x,"
439 atomic ? "atomic" : "non-atomic", gru->gs_gid, gts, tfh, vaddr, asid,
447 gru_dbg(grudev, "FAILED no_asid tfh: 0x%p, vaddr 0x%lx\n", tfh, vaddr);
449 tfh_user_polling_mode(tfh);
451 gru_flush_cache(tfh);
457 tfh_user_polling_mode(tfh);
460 gru_dbg(grudev, "FAILED upm tfh: 0x%p, vaddr 0x%lx\n", tfh, vaddr);
465 gru_flush_cache(tfh);
468 gru_dbg(grudev, "FAILED fmm tfh: 0x%p, state %d\n", tfh, tfh->state);
473 gru_flush_cache(tfh);
478 gru_dbg(grudev, "FAILED non-exception tfh: 0x%p, status %d, state %d\n",
479 tfh, tfh->status, tfh->state);
484 gru_flush_cache(tfh);
489 gru_dbg(grudev, "FAILED idle tfh: 0x%p, state %d\n", tfh, tfh->state);
494 tfh_exception(tfh);
497 gru_dbg(grudev, "FAILED inval tfh: 0x%p, vaddr 0x%lx\n", tfh, vaddr);
503 tfh_user_polling_mode(tfh);
505 gru_flush_cache(tfh);
508 gru_dbg(grudev, "FAILED range active: tfh 0x%p, vaddr 0x%lx\n",
509 tfh, vaddr);
524 struct gru_tlb_fault_handle *tfh = NULL;
554 tfh = get_tfh_by_index(gru, cbrnum);
555 prefetchw(tfh); /* Helps on hdw, required for emulator */
563 ctxnum = tfh->ctxnum;
579 gru_try_dropin(gru, gts, tfh, NULL);
582 tfh_user_polling_mode(tfh);
614 struct gru_tlb_fault_handle *tfh,
624 prefetchw(tfh); /* Helps on hdw, required for emulator */
625 ret = gru_try_dropin(gts->ts_gru, gts, tfh, cb);
639 struct gru_tlb_fault_handle *tfh;
677 tfh = get_tfh_by_index(gts->ts_gru, cbrnum);
680 ret = gru_user_dropin(gts, tfh, cbk);