Lines Matching refs:mem
23 static int pci_epc_mem_get_order(struct pci_epc_mem *mem, size_t size) in pci_epc_mem_get_order() argument
26 unsigned int page_shift = ilog2(mem->page_size); in pci_epc_mem_get_order()
52 struct pci_epc_mem *mem; in __pci_epc_mem_init() local
65 mem = kzalloc(sizeof(*mem), GFP_KERNEL); in __pci_epc_mem_init()
66 if (!mem) { in __pci_epc_mem_init()
77 mem->bitmap = bitmap; in __pci_epc_mem_init()
78 mem->phys_base = phys_base; in __pci_epc_mem_init()
79 mem->page_size = page_size; in __pci_epc_mem_init()
80 mem->pages = pages; in __pci_epc_mem_init()
81 mem->size = size; in __pci_epc_mem_init()
83 epc->mem = mem; in __pci_epc_mem_init()
88 kfree(mem); in __pci_epc_mem_init()
104 struct pci_epc_mem *mem = epc->mem; in pci_epc_mem_exit() local
106 epc->mem = NULL; in pci_epc_mem_exit()
107 kfree(mem->bitmap); in pci_epc_mem_exit()
108 kfree(mem); in pci_epc_mem_exit()
126 struct pci_epc_mem *mem = epc->mem; in pci_epc_mem_alloc_addr() local
127 unsigned int page_shift = ilog2(mem->page_size); in pci_epc_mem_alloc_addr()
130 size = ALIGN(size, mem->page_size); in pci_epc_mem_alloc_addr()
131 order = pci_epc_mem_get_order(mem, size); in pci_epc_mem_alloc_addr()
133 pageno = bitmap_find_free_region(mem->bitmap, mem->pages, order); in pci_epc_mem_alloc_addr()
137 *phys_addr = mem->phys_base + (pageno << page_shift); in pci_epc_mem_alloc_addr()
140 bitmap_release_region(mem->bitmap, pageno, order); in pci_epc_mem_alloc_addr()
159 struct pci_epc_mem *mem = epc->mem; in pci_epc_mem_free_addr() local
160 unsigned int page_shift = ilog2(mem->page_size); in pci_epc_mem_free_addr()
164 pageno = (phys_addr - mem->phys_base) >> page_shift; in pci_epc_mem_free_addr()
165 size = ALIGN(size, mem->page_size); in pci_epc_mem_free_addr()
166 order = pci_epc_mem_get_order(mem, size); in pci_epc_mem_free_addr()
167 bitmap_release_region(mem->bitmap, pageno, order); in pci_epc_mem_free_addr()