Lines Matching refs:gem

21 #include "gem.h"
27 drm_gem_object_put(&obj->gem);
91 0, obj->gem.size, GFP_KERNEL);
112 obj->gem.size);
138 else if (obj->gem.import_attach)
139 return dma_buf_vmap(obj->gem.import_attach->dmabuf);
151 else if (obj->gem.import_attach)
152 dma_buf_vunmap(obj->gem.import_attach->dmabuf, addr);
161 drm_gem_object_get(&obj->gem);
190 bo->mm, bo->gem.size, PAGE_SIZE, 0, 0);
246 err = drm_gem_object_init(drm, &bo->gem, size);
250 err = drm_gem_create_mmap_offset(&bo->gem);
257 drm_gem_object_release(&bo->gem);
267 drm_gem_put_pages(&bo->gem, bo->pages, true, true);
271 dma_free_wc(drm->dev, bo->gem.size, bo->vaddr, bo->iova);
279 bo->pages = drm_gem_get_pages(&bo->gem);
283 bo->num_pages = bo->gem.size >> PAGE_SHIFT;
285 bo->sgt = drm_prime_pages_to_sg(bo->gem.dev, bo->pages, bo->num_pages);
301 drm_gem_put_pages(&bo->gem, bo->pages, false, false);
321 size_t size = bo->gem.size;
359 drm_gem_object_release(&bo->gem);
377 err = drm_gem_handle_create(file, &bo->gem, handle);
379 tegra_bo_free_object(&bo->gem);
383 drm_gem_object_put(&bo->gem);
420 bo->gem.import_attach = attach;
431 drm_gem_object_release(&bo->gem);
436 void tegra_bo_free_object(struct drm_gem_object *gem)
438 struct tegra_drm *tegra = gem->dev->dev_private;
439 struct tegra_bo *bo = to_tegra_bo(gem);
444 if (gem->import_attach) {
445 dma_buf_unmap_attachment(gem->import_attach, bo->sgt,
447 drm_prime_gem_destroy(gem, NULL);
449 tegra_bo_free(gem->dev, bo);
452 drm_gem_object_release(gem);
477 struct drm_gem_object *gem = vma->vm_private_data;
478 struct tegra_bo *bo = to_tegra_bo(gem);
497 int __tegra_gem_mmap(struct drm_gem_object *gem, struct vm_area_struct *vma)
499 struct tegra_bo *bo = to_tegra_bo(gem);
513 err = dma_mmap_wc(gem->dev->dev, vma, bo->vaddr, bo->iova,
514 gem->size);
535 struct drm_gem_object *gem;
542 gem = vma->vm_private_data;
544 return __tegra_gem_mmap(gem, vma);
551 struct drm_gem_object *gem = attach->dmabuf->priv;
552 struct tegra_bo *bo = to_tegra_bo(gem);
561 0, gem->size, GFP_KERNEL) < 0)
565 gem->size) < 0)
584 struct drm_gem_object *gem = attach->dmabuf->priv;
585 struct tegra_bo *bo = to_tegra_bo(gem);
602 struct drm_gem_object *gem = buf->priv;
603 struct tegra_bo *bo = to_tegra_bo(gem);
604 struct drm_device *drm = gem->dev;
615 struct drm_gem_object *gem = buf->priv;
616 struct tegra_bo *bo = to_tegra_bo(gem);
617 struct drm_device *drm = gem->dev;
627 struct drm_gem_object *gem = buf->priv;
630 err = drm_gem_mmap_obj(gem, gem->size, vma);
634 return __tegra_gem_mmap(gem, vma);
639 struct drm_gem_object *gem = buf->priv;
640 struct tegra_bo *bo = to_tegra_bo(gem);
660 struct dma_buf *tegra_gem_prime_export(struct drm_gem_object *gem,
666 exp_info.owner = gem->dev->driver->fops->owner;
668 exp_info.size = gem->size;
670 exp_info.priv = gem;
672 return drm_gem_dmabuf_export(gem->dev, &exp_info);
681 struct drm_gem_object *gem = buf->priv;
683 if (gem->dev == drm) {
684 drm_gem_object_get(gem);
685 return gem;
693 return &bo->gem;