Lines Matching refs:va_range
535 struct hl_va_range *va_range, u64 start, u64 end) in add_va_block() argument
539 mutex_lock(&va_range->lock); in add_va_block()
540 rc = add_va_block_locked(hdev, &va_range->list, start, end); in add_va_block()
541 mutex_unlock(&va_range->lock); in add_va_block()
594 struct hl_va_range *va_range, in get_va_block() argument
605 bool is_align_pow_2 = is_power_of_2(va_range->page_size); in get_va_block()
618 size = DIV_ROUND_UP_ULL(size, va_range->page_size) * in get_va_block()
619 va_range->page_size; in get_va_block()
626 do_div(tmp_hint_addr, va_range->page_size))) { in get_va_block()
642 mutex_lock(&va_range->lock); in get_va_block()
644 print_va_list_locked(hdev, &va_range->list); in get_va_block()
646 list_for_each_entry(va_block, &va_range->list, node) { in get_va_block()
727 rc = add_va_block_locked(hdev, &va_range->list, prev_start, prev_end); in get_va_block()
734 print_va_list_locked(hdev, &va_range->list); in get_va_block()
736 mutex_unlock(&va_range->lock); in get_va_block()
759 return get_va_block(hdev, ctx->va_range[type], size, 0, in hl_reserve_va_block()
760 max(alignment, ctx->va_range[type]->page_size), in hl_reserve_va_block()
780 ctx->va_range[i]->start_addr, in hl_get_va_range_type()
781 ctx->va_range[i]->end_addr)) { in hl_get_va_range_type()
814 rc = add_va_block(hdev, ctx->va_range[type], start_addr, in hl_unreserve_va_block()
1059 struct hl_va_range *va_range; in map_device_va() local
1097 va_range = ctx->va_range[HL_VA_RANGE_TYPE_HOST]; in map_device_va()
1112 va_range = ctx->va_range[HL_VA_RANGE_TYPE_HOST_HUGE]; in map_device_va()
1138 va_range = ctx->va_range[HL_VA_RANGE_TYPE_DRAM]; in map_device_va()
1176 ret_vaddr = get_va_block(hdev, va_range, phys_pg_pack->total_size, in map_device_va()
1230 if (add_va_block(hdev, va_range, ret_vaddr, in map_device_va()
1281 struct hl_va_range *va_range; in unmap_device_va() local
1323 va_range = ctx->va_range[HL_VA_RANGE_TYPE_HOST]; in unmap_device_va()
1325 va_range = ctx->va_range[HL_VA_RANGE_TYPE_HOST_HUGE]; in unmap_device_va()
1328 va_range = ctx->va_range[HL_VA_RANGE_TYPE_DRAM]; in unmap_device_va()
1376 tmp_rc = add_va_block(hdev, va_range, vaddr, in unmap_device_va()
2497 struct hl_va_range *va_range = va_ranges[range_type]; in va_range_init() local
2500 INIT_LIST_HEAD(&va_range->list); in va_range_init()
2525 rc = add_va_block(hdev, va_range, start, end); in va_range_init()
2532 va_range->start_addr = start; in va_range_init()
2533 va_range->end_addr = end; in va_range_init()
2534 va_range->page_size = page_size; in va_range_init()
2547 static void va_range_fini(struct hl_device *hdev, struct hl_va_range *va_range) in va_range_fini() argument
2549 mutex_lock(&va_range->lock); in va_range_fini()
2550 clear_va_list_locked(hdev, &va_range->list); in va_range_fini()
2551 mutex_unlock(&va_range->lock); in va_range_fini()
2553 mutex_destroy(&va_range->lock); in va_range_fini()
2554 kfree(va_range); in va_range_fini()
2592 ctx->va_range[i] = in vm_ctx_init_with_ranges()
2594 if (!ctx->va_range[i]) { in vm_ctx_init_with_ranges()
2609 mutex_init(&ctx->va_range[HL_VA_RANGE_TYPE_HOST]->lock); in vm_ctx_init_with_ranges()
2611 rc = va_range_init(hdev, ctx->va_range, HL_VA_RANGE_TYPE_HOST, in vm_ctx_init_with_ranges()
2619 mutex_init(&ctx->va_range[HL_VA_RANGE_TYPE_HOST_HUGE]->lock); in vm_ctx_init_with_ranges()
2622 ctx->va_range, HL_VA_RANGE_TYPE_HOST_HUGE, in vm_ctx_init_with_ranges()
2631 kfree(ctx->va_range[HL_VA_RANGE_TYPE_HOST_HUGE]); in vm_ctx_init_with_ranges()
2632 ctx->va_range[HL_VA_RANGE_TYPE_HOST_HUGE] = in vm_ctx_init_with_ranges()
2633 ctx->va_range[HL_VA_RANGE_TYPE_HOST]; in vm_ctx_init_with_ranges()
2636 mutex_init(&ctx->va_range[HL_VA_RANGE_TYPE_DRAM]->lock); in vm_ctx_init_with_ranges()
2638 rc = va_range_init(hdev, ctx->va_range, HL_VA_RANGE_TYPE_DRAM, in vm_ctx_init_with_ranges()
2650 mutex_destroy(&ctx->va_range[HL_VA_RANGE_TYPE_DRAM]->lock); in vm_ctx_init_with_ranges()
2653 mutex_lock(&ctx->va_range[HL_VA_RANGE_TYPE_HOST_HUGE]->lock); in vm_ctx_init_with_ranges()
2655 &ctx->va_range[HL_VA_RANGE_TYPE_HOST_HUGE]->list); in vm_ctx_init_with_ranges()
2656 mutex_unlock(&ctx->va_range[HL_VA_RANGE_TYPE_HOST_HUGE]->lock); in vm_ctx_init_with_ranges()
2660 mutex_destroy(&ctx->va_range[HL_VA_RANGE_TYPE_HOST_HUGE]->lock); in vm_ctx_init_with_ranges()
2661 mutex_lock(&ctx->va_range[HL_VA_RANGE_TYPE_HOST]->lock); in vm_ctx_init_with_ranges()
2662 clear_va_list_locked(hdev, &ctx->va_range[HL_VA_RANGE_TYPE_HOST]->list); in vm_ctx_init_with_ranges()
2663 mutex_unlock(&ctx->va_range[HL_VA_RANGE_TYPE_HOST]->lock); in vm_ctx_init_with_ranges()
2665 mutex_destroy(&ctx->va_range[HL_VA_RANGE_TYPE_HOST]->lock); in vm_ctx_init_with_ranges()
2670 kfree(ctx->va_range[i]); in vm_ctx_init_with_ranges()
2785 va_range_fini(hdev, ctx->va_range[HL_VA_RANGE_TYPE_DRAM]); in hl_vm_ctx_fini()
2786 va_range_fini(hdev, ctx->va_range[HL_VA_RANGE_TYPE_HOST]); in hl_vm_ctx_fini()
2789 va_range_fini(hdev, ctx->va_range[HL_VA_RANGE_TYPE_HOST_HUGE]); in hl_vm_ctx_fini()