Lines Matching full:gem
3 * psb GEM interface
11 * accelerated operations on a GEM object)
23 struct gtt_range *gtt = container_of(obj, struct gtt_range, gem); in psb_gem_free_object()
29 /* This must occur last as it frees up the memory of the GEM object */ in psb_gem_free_object()
46 * Create a GEM object, fill in the boilerplate and attach a handle to
48 * for the various methods that do/will create GEM objects for things
61 r = psb_gtt_alloc_range(dev, size, "gem", 0, PAGE_SIZE); in psb_gem_create()
63 dev_err(dev->dev, "no memory for %lld byte GEM object\n", size); in psb_gem_create()
66 /* Initialize the extra goodies GEM needs to do all the hard work */ in psb_gem_create()
67 if (drm_gem_object_init(dev, &r->gem, size) != 0) { in psb_gem_create()
69 /* GEM doesn't give an error code so use -ENOMEM */ in psb_gem_create()
70 dev_err(dev->dev, "GEM init failed for %lld\n", size); in psb_gem_create()
74 mapping_set_gfp_mask(r->gem.filp->f_mapping, GFP_KERNEL | __GFP_DMA32); in psb_gem_create()
76 ret = drm_gem_handle_create(file, &r->gem, &handle); in psb_gem_create()
78 dev_err(dev->dev, "GEM handle failed for %p, %lld\n", in psb_gem_create()
79 &r->gem, size); in psb_gem_create()
80 drm_gem_object_release(&r->gem); in psb_gem_create()
85 drm_gem_object_put(&r->gem); in psb_gem_create()
110 * psb_gem_fault - pagefault handler for GEM objects
111 * @vma: the VMA of the GEM object
114 * Invoked when a fault occurs on an mmap of a GEM managed area. GEM
122 * The VMA was set up by GEM. In doing so it also ensured that the
123 * vma->vm_private_data points to the GEM object that is backing this
138 obj = vma->vm_private_data; /* GEM object */ in psb_gem_fault()
142 r = container_of(obj, struct gtt_range, gem); /* Get the gtt range */ in psb_gem_fault()
161 because vmf->pgoff is the fake GEM offset */ in psb_gem_fault()