Lines Matching full:acc

52 struct acc {  struct
521 static void print_acc(struct xe_device *xe, struct acc *acc) in print_acc() argument
531 acc->access_type ? "AC_NTFY_VAL" : "AC_TRIG_VAL", in print_acc()
532 acc->asid, acc->vfid, acc->engine_class, acc->engine_instance, in print_acc()
533 granularity_in_byte(acc->granularity) / SZ_1K, in print_acc()
534 sub_granularity_in_byte(acc->granularity) / SZ_1K, in print_acc()
535 acc->sub_granularity, acc->va_range_base); in print_acc()
538 static struct xe_vma *get_acc_vma(struct xe_vm *vm, struct acc *acc) in get_acc_vma() argument
540 u64 page_va = acc->va_range_base + (ffs(acc->sub_granularity) - 1) * in get_acc_vma()
541 sub_granularity_in_byte(acc->granularity); in get_acc_vma()
546 static int handle_acc(struct xe_gt *gt, struct acc *acc) in handle_acc() argument
556 if (acc->access_type != ACC_TRIGGER) in handle_acc()
559 vm = asid_to_vm(xe, acc->asid); in handle_acc()
566 vma = get_acc_vma(vm, acc); in handle_acc()
599 static bool get_acc(struct acc_queue *acc_queue, struct acc *acc) in get_acc() argument
609 acc->granularity = FIELD_GET(ACC_GRANULARITY, desc->dw2); in get_acc()
610 acc->sub_granularity = FIELD_GET(ACC_SUBG_HI, desc->dw1) << 31 | in get_acc()
612 acc->engine_class = FIELD_GET(ACC_ENG_CLASS, desc->dw1); in get_acc()
613 acc->engine_instance = FIELD_GET(ACC_ENG_INSTANCE, desc->dw1); in get_acc()
614 acc->asid = FIELD_GET(ACC_ASID, desc->dw1); in get_acc()
615 acc->vfid = FIELD_GET(ACC_VFID, desc->dw2); in get_acc()
616 acc->access_type = FIELD_GET(ACC_TYPE, desc->dw0); in get_acc()
617 acc->va_range_base = make_u64(desc->dw3 & ACC_VIRTUAL_ADDR_RANGE_HI, in get_acc()
634 struct acc acc = {}; in acc_queue_work_func() local
640 while (get_acc(acc_queue, &acc)) { in acc_queue_work_func()
641 ret = handle_acc(gt, &acc); in acc_queue_work_func()
643 print_acc(xe, &acc); in acc_queue_work_func()
644 drm_warn(&xe->drm, "ACC: Unsuccessful %d\n", ret); in acc_queue_work_func()
689 drm_warn(&gt_to_xe(gt)->drm, "ACC Queue full, dropping ACC"); in xe_guc_access_counter_notify_handler()