Lines Matching defs:obj
21 struct armada_gem_object *obj = drm_to_armada_gem(gobj);
22 unsigned long pfn = obj->phys_addr >> PAGE_SHIFT;
39 void armada_gem_free_object(struct drm_gem_object *obj)
41 struct armada_gem_object *dobj = drm_to_armada_gem(obj);
42 struct armada_private *priv = drm_to_armada_dev(obj->dev);
44 DRM_DEBUG_DRIVER("release obj %p\n", dobj);
46 drm_gem_free_mmap_offset(&dobj->obj);
52 unsigned int order = get_order(dobj->obj.size);
64 if (dobj->obj.import_attach) {
67 dma_buf_unmap_attachment(dobj->obj.import_attach,
69 drm_prime_gem_destroy(&dobj->obj, NULL);
72 drm_gem_object_release(&dobj->obj);
78 armada_gem_linear_back(struct drm_device *dev, struct armada_gem_object *obj)
81 size_t size = obj->obj.size;
83 if (obj->page || obj->linear)
99 obj->addr = page_address(p);
100 obj->phys_addr = page_to_phys(p);
101 obj->page = p;
103 memset(obj->addr, 0, PAGE_ALIGN(size));
131 if (!obj->page) {
150 obj->linear = node;
153 ptr = ioremap_wc(obj->linear->start, size);
156 drm_mm_remove_node(obj->linear);
158 kfree(obj->linear);
159 obj->linear = NULL;
166 obj->phys_addr = obj->linear->start;
167 obj->dev_addr = obj->linear->start;
168 obj->mapped = true;
171 DRM_DEBUG_DRIVER("obj %p phys %#llx dev %#llx\n", obj,
172 (unsigned long long)obj->phys_addr,
173 (unsigned long long)obj->dev_addr);
183 dobj->addr = ioremap_wc(dobj->phys_addr, dobj->obj.size);
190 struct armada_gem_object *obj;
194 obj = kzalloc(sizeof(*obj), GFP_KERNEL);
195 if (!obj)
198 drm_gem_private_object_init(dev, &obj->obj, size);
200 DRM_DEBUG_DRIVER("alloc private obj %p size %zu\n", obj, size);
202 return obj;
208 struct armada_gem_object *obj;
213 obj = kzalloc(sizeof(*obj), GFP_KERNEL);
214 if (!obj)
217 if (drm_gem_object_init(dev, &obj->obj, size)) {
218 kfree(obj);
222 mapping = obj->obj.filp->f_mapping;
225 DRM_DEBUG_DRIVER("alloc obj %p size %zu\n", obj, size);
227 return obj;
250 ret = drm_gem_handle_create(file, &dobj->obj, &handle);
257 DRM_DEBUG_DRIVER("obj %p size %zu handle %#x\n", dobj, size, handle);
259 drm_gem_object_put(&dobj->obj);
282 ret = drm_gem_handle_create(file, &dobj->obj, &handle);
289 DRM_DEBUG_DRIVER("obj %p size %zu handle %#x\n", dobj, size, handle);
291 drm_gem_object_put(&dobj->obj);
307 if (!dobj->obj.filp) {
308 drm_gem_object_put(&dobj->obj);
312 addr = vm_mmap(dobj->obj.filp, 0, args->size, PROT_READ | PROT_WRITE,
314 drm_gem_object_put(&dobj->obj);
354 if (args->offset > dobj->obj.size ||
355 args->size > dobj->obj.size - args->offset) {
356 DRM_ERROR("invalid size: object size %u\n", dobj->obj.size);
369 drm_gem_object_put(&dobj->obj);
378 struct drm_gem_object *obj = attach->dmabuf->priv;
379 struct armada_gem_object *dobj = drm_to_armada_gem(obj);
388 if (dobj->obj.filp) {
392 count = dobj->obj.size / PAGE_SIZE;
396 mapping = dobj->obj.filp->f_mapping;
415 sg_set_page(sgt->sgl, dobj->page, dobj->obj.size, 0);
424 sg_dma_len(sgt->sgl) = dobj->obj.size;
444 struct drm_gem_object *obj = attach->dmabuf->priv;
445 struct armada_gem_object *dobj = drm_to_armada_gem(obj);
451 if (dobj->obj.filp) {
476 armada_gem_prime_export(struct drm_gem_object *obj, int flags)
481 exp_info.size = obj->size;
483 exp_info.priv = obj;
485 return drm_gem_dmabuf_export(obj->dev, &exp_info);
495 struct drm_gem_object *obj = buf->priv;
496 if (obj->dev == dev) {
501 drm_gem_object_get(obj);
502 return obj;
516 dobj->obj.import_attach = attach;
524 return &dobj->obj;
531 dobj->sgt = dma_buf_map_attachment(dobj->obj.import_attach,
543 if (sg_dma_len(dobj->sgt->sgl) < dobj->obj.size) {