Lines Matching refs:gem

23 #include "gem.h"
56 drm_gem_object_put(&obj->gem);
63 struct drm_gem_object *gem = &obj->gem;
79 if (gem->import_attach) {
80 struct dma_buf *buf = gem->import_attach->dmabuf;
97 map->size = gem->size;
117 err = sg_alloc_table_from_pages(map->sgt, obj->pages, obj->num_pages, 0, gem->size,
127 err = dma_get_sgtable(dev, map->sgt, obj->vaddr, obj->iova, gem->size);
149 map->size = gem->size;
185 } else if (obj->gem.import_attach) {
186 ret = dma_buf_vmap_unlocked(obj->gem.import_attach->dmabuf, &map);
201 else if (obj->gem.import_attach)
202 dma_buf_vunmap_unlocked(obj->gem.import_attach->dmabuf, &map);
211 drm_gem_object_get(&obj->gem);
240 bo->mm, bo->gem.size, PAGE_SIZE, 0, 0);
299 bo->gem.funcs = &tegra_gem_object_funcs;
304 err = drm_gem_object_init(drm, &bo->gem, size);
308 err = drm_gem_create_mmap_offset(&bo->gem);
315 drm_gem_object_release(&bo->gem);
325 drm_gem_put_pages(&bo->gem, bo->pages, true, true);
329 dma_free_wc(drm->dev, bo->gem.size, bo->vaddr, bo->iova);
337 bo->pages = drm_gem_get_pages(&bo->gem);
341 bo->num_pages = bo->gem.size >> PAGE_SHIFT;
343 bo->sgt = drm_prime_pages_to_sg(bo->gem.dev, bo->pages, bo->num_pages);
359 drm_gem_put_pages(&bo->gem, bo->pages, false, false);
379 size_t size = bo->gem.size;
417 drm_gem_object_release(&bo->gem);
435 err = drm_gem_handle_create(file, &bo->gem, handle);
437 tegra_bo_free_object(&bo->gem);
441 drm_gem_object_put(&bo->gem);
478 bo->gem.import_attach = attach;
489 drm_gem_object_release(&bo->gem);
494 void tegra_bo_free_object(struct drm_gem_object *gem)
496 struct tegra_drm *tegra = gem->dev->dev_private;
498 struct tegra_bo *bo = to_tegra_bo(gem);
505 dev_err(gem->dev->dev, "mapping %p stale for device %s\n", mapping,
512 if (gem->import_attach) {
513 dma_buf_unmap_attachment_unlocked(gem->import_attach, bo->sgt,
515 drm_prime_gem_destroy(gem, NULL);
517 tegra_bo_free(gem->dev, bo);
520 drm_gem_object_release(gem);
545 struct drm_gem_object *gem = vma->vm_private_data;
546 struct tegra_bo *bo = to_tegra_bo(gem);
565 int __tegra_gem_mmap(struct drm_gem_object *gem, struct vm_area_struct *vma)
567 struct tegra_bo *bo = to_tegra_bo(gem);
581 err = dma_mmap_wc(gem->dev->dev, vma, bo->vaddr, bo->iova,
582 gem->size);
602 struct drm_gem_object *gem;
609 gem = vma->vm_private_data;
611 return __tegra_gem_mmap(gem, vma);
618 struct drm_gem_object *gem = attach->dmabuf->priv;
619 struct tegra_bo *bo = to_tegra_bo(gem);
628 0, gem->size, GFP_KERNEL) < 0)
632 gem->size) < 0)
651 struct drm_gem_object *gem = attach->dmabuf->priv;
652 struct tegra_bo *bo = to_tegra_bo(gem);
669 struct drm_gem_object *gem = buf->priv;
670 struct tegra_bo *bo = to_tegra_bo(gem);
671 struct drm_device *drm = gem->dev;
682 struct drm_gem_object *gem = buf->priv;
683 struct tegra_bo *bo = to_tegra_bo(gem);
684 struct drm_device *drm = gem->dev;
694 struct drm_gem_object *gem = buf->priv;
697 err = drm_gem_mmap_obj(gem, gem->size, vma);
701 return __tegra_gem_mmap(gem, vma);
706 struct drm_gem_object *gem = buf->priv;
707 struct tegra_bo *bo = to_tegra_bo(gem);
721 struct drm_gem_object *gem = buf->priv;
722 struct tegra_bo *bo = to_tegra_bo(gem);
738 struct dma_buf *tegra_gem_prime_export(struct drm_gem_object *gem,
744 exp_info.owner = gem->dev->driver->fops->owner;
746 exp_info.size = gem->size;
748 exp_info.priv = gem;
750 return drm_gem_dmabuf_export(gem->dev, &exp_info);
759 struct drm_gem_object *gem = buf->priv;
761 if (gem->dev == drm) {
762 drm_gem_object_get(gem);
763 return gem;
771 return &bo->gem;
776 struct drm_gem_object *gem;
779 gem = drm_gem_object_lookup(file, handle);
780 if (!gem)
783 bo = to_tegra_bo(gem);