Lines Matching full:acc
53 struct acc { struct
476 static void print_acc(struct xe_device *xe, struct acc *acc) in print_acc() argument
486 acc->access_type ? "AC_NTFY_VAL" : "AC_TRIG_VAL", in print_acc()
487 acc->asid, acc->vfid, acc->engine_class, acc->engine_instance, in print_acc()
488 granularity_in_byte(acc->granularity) / SZ_1K, in print_acc()
489 sub_granularity_in_byte(acc->granularity) / SZ_1K, in print_acc()
490 acc->sub_granularity, acc->va_range_base); in print_acc()
493 static struct xe_vma *get_acc_vma(struct xe_vm *vm, struct acc *acc) in get_acc_vma() argument
495 u64 page_va = acc->va_range_base + (ffs(acc->sub_granularity) - 1) * in get_acc_vma()
496 sub_granularity_in_byte(acc->granularity); in get_acc_vma()
501 static int handle_acc(struct xe_gt *gt, struct acc *acc) in handle_acc() argument
511 if (acc->access_type != ACC_TRIGGER) in handle_acc()
516 vm = xa_load(&xe->usm.asid_to_vm, acc->asid); in handle_acc()
526 vma = get_acc_vma(vm, acc); in handle_acc()
559 static bool get_acc(struct acc_queue *acc_queue, struct acc *acc) in get_acc() argument
569 acc->granularity = FIELD_GET(ACC_GRANULARITY, desc->dw2); in get_acc()
570 acc->sub_granularity = FIELD_GET(ACC_SUBG_HI, desc->dw1) << 31 | in get_acc()
572 acc->engine_class = FIELD_GET(ACC_ENG_CLASS, desc->dw1); in get_acc()
573 acc->engine_instance = FIELD_GET(ACC_ENG_INSTANCE, desc->dw1); in get_acc()
574 acc->asid = FIELD_GET(ACC_ASID, desc->dw1); in get_acc()
575 acc->vfid = FIELD_GET(ACC_VFID, desc->dw2); in get_acc()
576 acc->access_type = FIELD_GET(ACC_TYPE, desc->dw0); in get_acc()
577 acc->va_range_base = make_u64(desc->dw3 & ACC_VIRTUAL_ADDR_RANGE_HI, in get_acc()
594 struct acc acc = {}; in acc_queue_work_func() local
600 while (get_acc(acc_queue, &acc)) { in acc_queue_work_func()
601 ret = handle_acc(gt, &acc); in acc_queue_work_func()
603 print_acc(xe, &acc); in acc_queue_work_func()
604 drm_warn(&xe->drm, "ACC: Unsuccessful %d\n", ret); in acc_queue_work_func()
644 drm_warn(>_to_xe(gt)->drm, "ACC Queue full, dropping ACC"); in xe_guc_access_counter_notify_handler()