Lines Matching refs:map
283 struct acpi_ioremap *map; in acpi_map_lookup() local
285 list_for_each_entry_rcu(map, &acpi_ioremaps, list) in acpi_map_lookup()
286 if (map->phys <= phys && in acpi_map_lookup()
287 phys + size <= map->phys + map->size) in acpi_map_lookup()
288 return map; in acpi_map_lookup()
297 struct acpi_ioremap *map; in acpi_map_vaddr_lookup() local
299 map = acpi_map_lookup(phys, size); in acpi_map_vaddr_lookup()
300 if (map) in acpi_map_vaddr_lookup()
301 return map->virt + (phys - map->phys); in acpi_map_vaddr_lookup()
308 struct acpi_ioremap *map; in acpi_os_get_iomem() local
312 map = acpi_map_lookup(phys, size); in acpi_os_get_iomem()
313 if (map) { in acpi_os_get_iomem()
314 virt = map->virt + (phys - map->phys); in acpi_os_get_iomem()
315 map->refcount++; in acpi_os_get_iomem()
326 struct acpi_ioremap *map; in acpi_map_lookup_virt() local
328 list_for_each_entry_rcu(map, &acpi_ioremaps, list) in acpi_map_lookup_virt()
329 if (map->virt <= virt && in acpi_map_lookup_virt()
330 virt + size <= map->virt + map->size) in acpi_map_lookup_virt()
331 return map; in acpi_map_lookup_virt()
370 struct acpi_ioremap *map; in acpi_os_map_iomem() local
385 map = acpi_map_lookup(phys, size); in acpi_os_map_iomem()
386 if (map) { in acpi_os_map_iomem()
387 map->refcount++; in acpi_os_map_iomem()
391 map = kzalloc(sizeof(*map), GFP_KERNEL); in acpi_os_map_iomem()
392 if (!map) { in acpi_os_map_iomem()
402 kfree(map); in acpi_os_map_iomem()
406 INIT_LIST_HEAD(&map->list); in acpi_os_map_iomem()
407 map->virt = virt; in acpi_os_map_iomem()
408 map->phys = pg_off; in acpi_os_map_iomem()
409 map->size = pg_sz; in acpi_os_map_iomem()
410 map->refcount = 1; in acpi_os_map_iomem()
412 list_add_tail_rcu(&map->list, &acpi_ioremaps); in acpi_os_map_iomem()
416 return map->virt + (phys - map->phys); in acpi_os_map_iomem()
427 static void acpi_os_drop_map_ref(struct acpi_ioremap *map) in acpi_os_drop_map_ref() argument
429 if (!--map->refcount) in acpi_os_drop_map_ref()
430 list_del_rcu(&map->list); in acpi_os_drop_map_ref()
433 static void acpi_os_map_cleanup(struct acpi_ioremap *map) in acpi_os_map_cleanup() argument
435 if (!map->refcount) { in acpi_os_map_cleanup()
437 acpi_unmap(map->phys, map->virt); in acpi_os_map_cleanup()
438 kfree(map); in acpi_os_map_cleanup()
444 struct acpi_ioremap *map; in acpi_os_unmap_iomem() local
452 map = acpi_map_lookup_virt(virt, size); in acpi_os_unmap_iomem()
453 if (!map) { in acpi_os_unmap_iomem()
458 acpi_os_drop_map_ref(map); in acpi_os_unmap_iomem()
461 acpi_os_map_cleanup(map); in acpi_os_unmap_iomem()
501 struct acpi_ioremap *map; in acpi_os_unmap_generic_address() local
512 map = acpi_map_lookup(addr, gas->bit_width / 8); in acpi_os_unmap_generic_address()
513 if (!map) { in acpi_os_unmap_generic_address()
517 acpi_os_drop_map_ref(map); in acpi_os_unmap_generic_address()
520 acpi_os_map_cleanup(map); in acpi_os_unmap_generic_address()