Lines Matching refs:map

73 static inline void sq_mapping_list_add(struct sq_mapping *map)  in sq_mapping_list_add()  argument
83 map->next = tmp; in sq_mapping_list_add()
84 *p = map; in sq_mapping_list_add()
89 static inline void sq_mapping_list_del(struct sq_mapping *map) in sq_mapping_list_del() argument
96 if (tmp == map) { in sq_mapping_list_del()
104 static int __sq_remap(struct sq_mapping *map, pgprot_t prot) in __sq_remap() argument
109 vma = __get_vm_area(map->size, VM_ALLOC, map->sq_addr, SQ_ADDRMAX); in __sq_remap()
113 vma->phys_addr = map->addr; in __sq_remap()
116 (unsigned long)vma->addr + map->size, in __sq_remap()
127 __raw_writel(((map->addr >> 26) << 2) & 0x1c, SQ_QACR0); in __sq_remap()
128 __raw_writel(((map->addr >> 26) << 2) & 0x1c, SQ_QACR1); in __sq_remap()
148 struct sq_mapping *map; in sq_remap() local
164 map = kmem_cache_alloc(sq_cache, GFP_KERNEL); in sq_remap()
165 if (unlikely(!map)) in sq_remap()
168 map->addr = phys; in sq_remap()
169 map->size = size; in sq_remap()
170 map->name = name; in sq_remap()
173 get_order(map->size)); in sq_remap()
179 map->sq_addr = P4SEG_STORE_QUE + (page << PAGE_SHIFT); in sq_remap()
181 ret = __sq_remap(map, prot); in sq_remap()
187 likely(map->name) ? map->name : "???", in sq_remap()
189 map->sq_addr, map->addr); in sq_remap()
191 sq_mapping_list_add(map); in sq_remap()
193 return map->sq_addr; in sq_remap()
196 kmem_cache_free(sq_cache, map); in sq_remap()
211 struct sq_mapping **p, *map; in sq_unmap() local
214 for (p = &sq_mapping_list; (map = *p); p = &map->next) in sq_unmap()
215 if (map->sq_addr == vaddr) in sq_unmap()
218 if (unlikely(!map)) { in sq_unmap()
224 page = (map->sq_addr - P4SEG_STORE_QUE) >> PAGE_SHIFT; in sq_unmap()
225 bitmap_release_region(sq_bitmap, page, get_order(map->size)); in sq_unmap()
234 vma = remove_vm_area((void *)(map->sq_addr & PAGE_MASK)); in sq_unmap()
237 __func__, map->sq_addr); in sq_unmap()
243 sq_mapping_list_del(map); in sq_unmap()
245 kmem_cache_free(sq_cache, map); in sq_unmap()