Lines Matching refs:mapping
883 struct host1x_bo_mapping *mapping; in host1x_bo_pin() local
888 list_for_each_entry(mapping, &cache->mappings, entry) { in host1x_bo_pin()
889 if (mapping->bo == bo && mapping->direction == dir) { in host1x_bo_pin()
890 kref_get(&mapping->ref); in host1x_bo_pin()
896 mapping = bo->ops->pin(dev, bo, dir); in host1x_bo_pin()
897 if (IS_ERR(mapping)) in host1x_bo_pin()
900 spin_lock(&mapping->bo->lock); in host1x_bo_pin()
901 list_add_tail(&mapping->list, &bo->mappings); in host1x_bo_pin()
902 spin_unlock(&mapping->bo->lock); in host1x_bo_pin()
905 INIT_LIST_HEAD(&mapping->entry); in host1x_bo_pin()
906 mapping->cache = cache; in host1x_bo_pin()
908 list_add_tail(&mapping->entry, &cache->mappings); in host1x_bo_pin()
911 kref_get(&mapping->ref); in host1x_bo_pin()
918 return mapping; in host1x_bo_pin()
924 struct host1x_bo_mapping *mapping = to_host1x_bo_mapping(ref); in __host1x_bo_unpin() local
930 if (mapping->cache) in __host1x_bo_unpin()
931 list_del(&mapping->entry); in __host1x_bo_unpin()
933 spin_lock(&mapping->bo->lock); in __host1x_bo_unpin()
934 list_del(&mapping->list); in __host1x_bo_unpin()
935 spin_unlock(&mapping->bo->lock); in __host1x_bo_unpin()
937 mapping->bo->ops->unpin(mapping); in __host1x_bo_unpin()
940 void host1x_bo_unpin(struct host1x_bo_mapping *mapping) in host1x_bo_unpin() argument
942 struct host1x_bo_cache *cache = mapping->cache; in host1x_bo_unpin()
947 kref_put(&mapping->ref, __host1x_bo_unpin); in host1x_bo_unpin()