Lines Matching defs:mapping
8 #include <linux/dma-mapping.h>
896 struct host1x_bo_mapping *mapping;
901 list_for_each_entry(mapping, &cache->mappings, entry) {
902 if (mapping->bo == bo && mapping->direction == dir) {
903 kref_get(&mapping->ref);
909 mapping = bo->ops->pin(dev, bo, dir);
910 if (IS_ERR(mapping))
913 spin_lock(&mapping->bo->lock);
914 list_add_tail(&mapping->list, &bo->mappings);
915 spin_unlock(&mapping->bo->lock);
918 INIT_LIST_HEAD(&mapping->entry);
919 mapping->cache = cache;
921 list_add_tail(&mapping->entry, &cache->mappings);
924 kref_get(&mapping->ref);
931 return mapping;
937 struct host1x_bo_mapping *mapping = to_host1x_bo_mapping(ref);
940 * When the last reference of the mapping goes away, make sure to remove the mapping from
943 if (mapping->cache)
944 list_del(&mapping->entry);
946 spin_lock(&mapping->bo->lock);
947 list_del(&mapping->list);
948 spin_unlock(&mapping->bo->lock);
950 mapping->bo->ops->unpin(mapping);
953 void host1x_bo_unpin(struct host1x_bo_mapping *mapping)
955 struct host1x_bo_cache *cache = mapping->cache;
960 kref_put(&mapping->ref, __host1x_bo_unpin);