phys_pg_pack 232 drivers/misc/habanalabs/debugfs.c struct hl_vm_phys_pg_pack *phys_pg_pack = NULL; phys_pg_pack 262 drivers/misc/habanalabs/debugfs.c phys_pg_pack = hnode->ptr; phys_pg_pack 265 drivers/misc/habanalabs/debugfs.c hnode->vaddr, phys_pg_pack->total_size, phys_pg_pack 266 drivers/misc/habanalabs/debugfs.c phys_pg_pack->handle); phys_pg_pack 277 drivers/misc/habanalabs/debugfs.c idr_for_each_entry(&vm->phys_pg_pack_handles, phys_pg_pack, i) { phys_pg_pack 278 drivers/misc/habanalabs/debugfs.c if (phys_pg_pack->asid != ctx->asid) phys_pg_pack 281 drivers/misc/habanalabs/debugfs.c seq_printf(s, "\nhandle: %u\n", phys_pg_pack->handle); phys_pg_pack 283 drivers/misc/habanalabs/debugfs.c phys_pg_pack->page_size); phys_pg_pack 286 drivers/misc/habanalabs/debugfs.c for (j = 0 ; j < phys_pg_pack->npages ; j++) { phys_pg_pack 288 drivers/misc/habanalabs/debugfs.c phys_pg_pack->pages[j]); phys_pg_pack 58 drivers/misc/habanalabs/memory.c struct hl_vm_phys_pg_pack *phys_pg_pack; phys_pg_pack 82 drivers/misc/habanalabs/memory.c phys_pg_pack = kzalloc(sizeof(*phys_pg_pack), GFP_KERNEL); phys_pg_pack 83 drivers/misc/habanalabs/memory.c if (!phys_pg_pack) { phys_pg_pack 88 drivers/misc/habanalabs/memory.c phys_pg_pack->vm_type = VM_TYPE_PHYS_PACK; phys_pg_pack 89 drivers/misc/habanalabs/memory.c phys_pg_pack->asid = ctx->asid; phys_pg_pack 90 drivers/misc/habanalabs/memory.c phys_pg_pack->npages = num_pgs; phys_pg_pack 91 drivers/misc/habanalabs/memory.c phys_pg_pack->page_size = page_size; phys_pg_pack 92 drivers/misc/habanalabs/memory.c phys_pg_pack->total_size = total_size; phys_pg_pack 93 drivers/misc/habanalabs/memory.c phys_pg_pack->flags = args->flags; phys_pg_pack 94 drivers/misc/habanalabs/memory.c phys_pg_pack->contiguous = contiguous; phys_pg_pack 96 drivers/misc/habanalabs/memory.c phys_pg_pack->pages = kvmalloc_array(num_pgs, sizeof(u64), GFP_KERNEL); phys_pg_pack 97 drivers/misc/habanalabs/memory.c if (!phys_pg_pack->pages) { phys_pg_pack 102 drivers/misc/habanalabs/memory.c if (phys_pg_pack->contiguous) { phys_pg_pack 104 drivers/misc/habanalabs/memory.c phys_pg_pack->pages[i] = paddr + i * page_size; phys_pg_pack 107 drivers/misc/habanalabs/memory.c phys_pg_pack->pages[i] = (u64) gen_pool_alloc( phys_pg_pack 110 drivers/misc/habanalabs/memory.c if (!phys_pg_pack->pages[i]) { phys_pg_pack 122 drivers/misc/habanalabs/memory.c handle = idr_alloc(&vm->phys_pg_pack_handles, phys_pg_pack, 1, 0, phys_pg_pack 135 drivers/misc/habanalabs/memory.c phys_pg_pack->handle = handle; phys_pg_pack 137 drivers/misc/habanalabs/memory.c atomic64_add(phys_pg_pack->total_size, &ctx->dram_phys_mem); phys_pg_pack 138 drivers/misc/habanalabs/memory.c atomic64_add(phys_pg_pack->total_size, &hdev->dram_used_mem); phys_pg_pack 146 drivers/misc/habanalabs/memory.c if (!phys_pg_pack->contiguous) phys_pg_pack 148 drivers/misc/habanalabs/memory.c gen_pool_free(vm->dram_pg_pool, phys_pg_pack->pages[i], phys_pg_pack 151 drivers/misc/habanalabs/memory.c kvfree(phys_pg_pack->pages); phys_pg_pack 153 drivers/misc/habanalabs/memory.c kfree(phys_pg_pack); phys_pg_pack 267 drivers/misc/habanalabs/memory.c struct hl_vm_phys_pg_pack *phys_pg_pack) phys_pg_pack 272 drivers/misc/habanalabs/memory.c if (!phys_pg_pack->created_from_userptr) { phys_pg_pack 273 drivers/misc/habanalabs/memory.c if (phys_pg_pack->contiguous) { phys_pg_pack 274 drivers/misc/habanalabs/memory.c gen_pool_free(vm->dram_pg_pool, phys_pg_pack->pages[0], phys_pg_pack 275 drivers/misc/habanalabs/memory.c phys_pg_pack->total_size); phys_pg_pack 277 drivers/misc/habanalabs/memory.c for (i = 0; i < phys_pg_pack->npages ; i++) phys_pg_pack 281 drivers/misc/habanalabs/memory.c for (i = 0 ; i < phys_pg_pack->npages ; i++) { phys_pg_pack 283 drivers/misc/habanalabs/memory.c phys_pg_pack->pages[i], phys_pg_pack 284 drivers/misc/habanalabs/memory.c phys_pg_pack->page_size); phys_pg_pack 291 drivers/misc/habanalabs/memory.c kvfree(phys_pg_pack->pages); phys_pg_pack 292 drivers/misc/habanalabs/memory.c kfree(phys_pg_pack); phys_pg_pack 308 drivers/misc/habanalabs/memory.c struct hl_vm_phys_pg_pack *phys_pg_pack; phys_pg_pack 311 drivers/misc/habanalabs/memory.c phys_pg_pack = idr_find(&vm->phys_pg_pack_handles, handle); phys_pg_pack 312 drivers/misc/habanalabs/memory.c if (phys_pg_pack) { phys_pg_pack 313 drivers/misc/habanalabs/memory.c if (atomic_read(&phys_pg_pack->mapping_cnt) > 0) { phys_pg_pack 328 drivers/misc/habanalabs/memory.c atomic64_sub(phys_pg_pack->total_size, &ctx->dram_phys_mem); phys_pg_pack 329 drivers/misc/habanalabs/memory.c atomic64_sub(phys_pg_pack->total_size, &hdev->dram_used_mem); phys_pg_pack 331 drivers/misc/habanalabs/memory.c free_phys_pg_pack(hdev, phys_pg_pack); phys_pg_pack 649 drivers/misc/habanalabs/memory.c struct hl_vm_phys_pg_pack *phys_pg_pack; phys_pg_pack 657 drivers/misc/habanalabs/memory.c phys_pg_pack = kzalloc(sizeof(*phys_pg_pack), GFP_KERNEL); phys_pg_pack 658 drivers/misc/habanalabs/memory.c if (!phys_pg_pack) phys_pg_pack 661 drivers/misc/habanalabs/memory.c phys_pg_pack->vm_type = userptr->vm_type; phys_pg_pack 662 drivers/misc/habanalabs/memory.c phys_pg_pack->created_from_userptr = true; phys_pg_pack 663 drivers/misc/habanalabs/memory.c phys_pg_pack->asid = ctx->asid; phys_pg_pack 664 drivers/misc/habanalabs/memory.c atomic_set(&phys_pg_pack->mapping_cnt, 1); phys_pg_pack 690 drivers/misc/habanalabs/memory.c phys_pg_pack->pages = kvmalloc_array(total_npages, sizeof(u64), phys_pg_pack 692 drivers/misc/habanalabs/memory.c if (!phys_pg_pack->pages) { phys_pg_pack 697 drivers/misc/habanalabs/memory.c phys_pg_pack->npages = total_npages; phys_pg_pack 698 drivers/misc/habanalabs/memory.c phys_pg_pack->page_size = page_size; phys_pg_pack 699 drivers/misc/habanalabs/memory.c phys_pg_pack->total_size = total_npages * page_size; phys_pg_pack 708 drivers/misc/habanalabs/memory.c phys_pg_pack->offset = dma_addr & (page_size - 1); phys_pg_pack 713 drivers/misc/habanalabs/memory.c phys_pg_pack->pages[j++] = dma_addr; phys_pg_pack 723 drivers/misc/habanalabs/memory.c *pphys_pg_pack = phys_pg_pack; phys_pg_pack 728 drivers/misc/habanalabs/memory.c kfree(phys_pg_pack); phys_pg_pack 746 drivers/misc/habanalabs/memory.c struct hl_vm_phys_pg_pack *phys_pg_pack) phys_pg_pack 750 drivers/misc/habanalabs/memory.c u32 page_size = phys_pg_pack->page_size; phys_pg_pack 753 drivers/misc/habanalabs/memory.c for (i = 0 ; i < phys_pg_pack->npages ; i++) { phys_pg_pack 754 drivers/misc/habanalabs/memory.c paddr = phys_pg_pack->pages[i]; phys_pg_pack 760 drivers/misc/habanalabs/memory.c phys_pg_pack->handle, phys_pg_pack->npages, phys_pg_pack 777 drivers/misc/habanalabs/memory.c phys_pg_pack->handle, next_vaddr, phys_pg_pack 778 drivers/misc/habanalabs/memory.c phys_pg_pack->pages[i], page_size); phys_pg_pack 791 drivers/misc/habanalabs/memory.c struct hl_vm_phys_pg_pack *phys_pg_pack; phys_pg_pack 796 drivers/misc/habanalabs/memory.c phys_pg_pack = idr_find(&vm->phys_pg_pack_handles, handle); phys_pg_pack 797 drivers/misc/habanalabs/memory.c if (!phys_pg_pack) { phys_pg_pack 803 drivers/misc/habanalabs/memory.c *paddr = phys_pg_pack->pages[0]; phys_pg_pack 829 drivers/misc/habanalabs/memory.c struct hl_vm_phys_pg_pack *phys_pg_pack; phys_pg_pack 849 drivers/misc/habanalabs/memory.c &phys_pg_pack); phys_pg_pack 863 drivers/misc/habanalabs/memory.c phys_pg_pack = idr_find(&vm->phys_pg_pack_handles, handle); phys_pg_pack 864 drivers/misc/habanalabs/memory.c if (!phys_pg_pack) { phys_pg_pack 872 drivers/misc/habanalabs/memory.c atomic_inc(&phys_pg_pack->mapping_cnt); phys_pg_pack 876 drivers/misc/habanalabs/memory.c vm_type = (enum vm_type_t *) phys_pg_pack; phys_pg_pack 885 drivers/misc/habanalabs/memory.c if (!is_userptr && !(phys_pg_pack->flags & HL_MEM_SHARED) && phys_pg_pack 886 drivers/misc/habanalabs/memory.c phys_pg_pack->asid != ctx->asid) { phys_pg_pack 902 drivers/misc/habanalabs/memory.c phys_pg_pack->total_size, hint_addr, is_userptr); phys_pg_pack 912 drivers/misc/habanalabs/memory.c rc = map_phys_page_pack(ctx, ret_vaddr, phys_pg_pack); phys_pg_pack 924 drivers/misc/habanalabs/memory.c ret_vaddr += phys_pg_pack->offset; phys_pg_pack 936 drivers/misc/habanalabs/memory.c free_phys_pg_pack(hdev, phys_pg_pack); phys_pg_pack 944 drivers/misc/habanalabs/memory.c ret_vaddr + phys_pg_pack->total_size - 1)) phys_pg_pack 953 drivers/misc/habanalabs/memory.c atomic_dec(&phys_pg_pack->mapping_cnt); phys_pg_pack 955 drivers/misc/habanalabs/memory.c free_phys_pg_pack(hdev, phys_pg_pack); phys_pg_pack 977 drivers/misc/habanalabs/memory.c struct hl_vm_phys_pg_pack *phys_pg_pack = NULL; phys_pg_pack 1011 drivers/misc/habanalabs/memory.c &phys_pg_pack); phys_pg_pack 1021 drivers/misc/habanalabs/memory.c phys_pg_pack = hnode->ptr; phys_pg_pack 1030 drivers/misc/habanalabs/memory.c if (atomic_read(&phys_pg_pack->mapping_cnt) == 0) { phys_pg_pack 1036 drivers/misc/habanalabs/memory.c page_size = phys_pg_pack->page_size; phys_pg_pack 1043 drivers/misc/habanalabs/memory.c for (i = 0 ; i < phys_pg_pack->npages ; i++, next_vaddr += page_size) { phys_pg_pack 1065 drivers/misc/habanalabs/memory.c vaddr + phys_pg_pack->total_size - 1); phys_pg_pack 1072 drivers/misc/habanalabs/memory.c atomic_dec(&phys_pg_pack->mapping_cnt); phys_pg_pack 1076 drivers/misc/habanalabs/memory.c free_phys_pg_pack(hdev, phys_pg_pack); phys_pg_pack 1084 drivers/misc/habanalabs/memory.c free_phys_pg_pack(hdev, phys_pg_pack);