Lines Matching refs:map
109 struct map { struct
118 static void __maybe_unused _debug_dump_map(const struct map *m, in _debug_dump_map() argument
130 static struct map map; variable
140 return (phys_addr < map.rm.size || phys_addr >= map.total) in ps3_mm_phys_to_lpar()
141 ? phys_addr : phys_addr + map.r1.offset; in ps3_mm_phys_to_lpar()
181 &map.vas_id, &map.htab_size); in ps3_mm_vas_create()
189 result = lv1_select_virtual_address_space(map.vas_id); in ps3_mm_vas_create()
197 *htab_size = map.htab_size; in ps3_mm_vas_create()
199 debug_dump_map(&map); in ps3_mm_vas_create()
215 DBG("%s:%d: map.vas_id = %llu\n", __func__, __LINE__, map.vas_id); in ps3_mm_vas_destroy()
217 if (map.vas_id) { in ps3_mm_vas_destroy()
220 result = lv1_destruct_virtual_address_space(map.vas_id); in ps3_mm_vas_destroy()
222 map.vas_id = 0; in ps3_mm_vas_destroy()
242 r->offset = r->base - map.rm.size; in ps3_mm_get_repository_highmem()
294 if (result || r->base < map.rm.size) { in ps3_mm_region_create()
301 r->offset = r->base - map.rm.size; in ps3_mm_region_create()
330 map.total = map.rm.size; in ps3_mm_region_destroy()
348 if (lpar_addr >= map.rm.size) in dma_sb_lpar_to_bus()
349 lpar_addr -= map.r1.offset; in dma_sb_lpar_to_bus()
998 if (r->offset < map.rm.size) { in dma_sb_region_create_linear()
1000 virt_addr = map.rm.base + r->offset; in dma_sb_region_create_linear()
1001 len = map.rm.size - r->offset; in dma_sb_region_create_linear()
1010 if (r->offset + r->len > map.rm.size) { in dma_sb_region_create_linear()
1012 virt_addr = map.rm.size; in dma_sb_region_create_linear()
1014 if (r->offset >= map.rm.size) in dma_sb_region_create_linear()
1015 virt_addr += r->offset - map.rm.size; in dma_sb_region_create_linear()
1017 len -= map.rm.size - r->offset; in dma_sb_region_create_linear()
1040 if (r->offset < map.rm.size) { in dma_sb_region_free_linear()
1042 lpar_addr = map.rm.base + r->offset; in dma_sb_region_free_linear()
1043 len = map.rm.size - r->offset; in dma_sb_region_free_linear()
1051 if (r->offset + r->len > map.rm.size) { in dma_sb_region_free_linear()
1053 lpar_addr = map.r1.base; in dma_sb_region_free_linear()
1055 if (r->offset >= map.rm.size) in dma_sb_region_free_linear()
1056 lpar_addr += r->offset - map.rm.size; in dma_sb_region_free_linear()
1058 len -= map.rm.size - r->offset; in dma_sb_region_free_linear()
1110 .map = dma_sb_map_area,
1117 .map = dma_sb_map_area_linear,
1124 .map = dma_ioc0_map_area,
1140 if (r->offset >= map.rm.size) in ps3_dma_region_init()
1141 r->offset -= map.r1.offset; in ps3_dma_region_init()
1142 r->len = len ? len : _ALIGN_UP(map.total, 1 << r->page_size); in ps3_dma_region_init()
1183 return r->region_ops->map(r, virt_addr, len, bus_addr, iopte_flag); in ps3_dma_map()
1206 result = ps3_repository_read_mm_info(&map.rm.base, &map.rm.size, in ps3_mm_init()
1207 &map.total); in ps3_mm_init()
1212 map.rm.offset = map.rm.base; in ps3_mm_init()
1213 map.vas_id = map.htab_size = 0; in ps3_mm_init()
1217 BUG_ON(map.rm.base); in ps3_mm_init()
1218 BUG_ON(!map.rm.size); in ps3_mm_init()
1222 if (ps3_mm_get_repository_highmem(&map.r1)) { in ps3_mm_init()
1223 result = ps3_mm_region_create(&map.r1, map.total - map.rm.size); in ps3_mm_init()
1226 ps3_mm_set_repository_highmem(&map.r1); in ps3_mm_init()
1230 map.total = map.rm.size + map.r1.size; in ps3_mm_init()
1232 if (!map.r1.size) { in ps3_mm_init()
1236 __func__, __LINE__, map.rm.size, in ps3_mm_init()
1237 map.total - map.rm.size); in ps3_mm_init()
1238 memblock_add(map.rm.size, map.total - map.rm.size); in ps3_mm_init()
1250 ps3_mm_region_destroy(&map.r1); in ps3_mm_shutdown()