aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/tegra/gem.c
diff options
context:
space:
mode:
authorGustavo Padovan <gustavo.padovan@collabora.com>2018-06-20 12:22:22 -0400
committerGustavo Padovan <gustavo.padovan@collabora.com>2018-06-20 12:22:22 -0400
commitd98c71dadc2d0debdb80beb5a478baf1e6f98758 (patch)
treebf873c28d3acced1814f8b2dba4ae69d2ed77333 /drivers/gpu/drm/tegra/gem.c
parentd67b6a2065076d763c7df626b8c54f16038ad862 (diff)
parentdaf0678c2036c918f01e4aa6035629d2debc2f30 (diff)
Merge drm-upstream/drm-next into drm-misc-next
We got a few conflicts in drm_atomic.c after merging the DRM writeback support, now we need a backmerge to unlock develop development on drm-misc-next. Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.com>
Diffstat (limited to 'drivers/gpu/drm/tegra/gem.c')
-rw-r--r--drivers/gpu/drm/tegra/gem.c20
1 files changed, 4 insertions, 16 deletions
diff --git a/drivers/gpu/drm/tegra/gem.c b/drivers/gpu/drm/tegra/gem.c
index d7661702c11c..4f80100ff5f3 100644
--- a/drivers/gpu/drm/tegra/gem.c
+++ b/drivers/gpu/drm/tegra/gem.c
@@ -422,14 +422,13 @@ int tegra_bo_dumb_create(struct drm_file *file, struct drm_device *drm,
422 return 0; 422 return 0;
423} 423}
424 424
425static int tegra_bo_fault(struct vm_fault *vmf) 425static vm_fault_t tegra_bo_fault(struct vm_fault *vmf)
426{ 426{
427 struct vm_area_struct *vma = vmf->vma; 427 struct vm_area_struct *vma = vmf->vma;
428 struct drm_gem_object *gem = vma->vm_private_data; 428 struct drm_gem_object *gem = vma->vm_private_data;
429 struct tegra_bo *bo = to_tegra_bo(gem); 429 struct tegra_bo *bo = to_tegra_bo(gem);
430 struct page *page; 430 struct page *page;
431 pgoff_t offset; 431 pgoff_t offset;
432 int err;
433 432
434 if (!bo->pages) 433 if (!bo->pages)
435 return VM_FAULT_SIGBUS; 434 return VM_FAULT_SIGBUS;
@@ -437,20 +436,7 @@ static int tegra_bo_fault(struct vm_fault *vmf)
437 offset = (vmf->address - vma->vm_start) >> PAGE_SHIFT; 436 offset = (vmf->address - vma->vm_start) >> PAGE_SHIFT;
438 page = bo->pages[offset]; 437 page = bo->pages[offset];
439 438
440 err = vm_insert_page(vma, vmf->address, page); 439 return vmf_insert_page(vma, vmf->address, page);
441 switch (err) {
442 case -EAGAIN:
443 case 0:
444 case -ERESTARTSYS:
445 case -EINTR:
446 case -EBUSY:
447 return VM_FAULT_NOPAGE;
448
449 case -ENOMEM:
450 return VM_FAULT_OOM;
451 }
452
453 return VM_FAULT_SIGBUS;
454} 440}
455 441
456const struct vm_operations_struct tegra_bo_vm_ops = { 442const struct vm_operations_struct tegra_bo_vm_ops = {
@@ -649,6 +635,8 @@ struct dma_buf *tegra_gem_prime_export(struct drm_device *drm,
649{ 635{
650 DEFINE_DMA_BUF_EXPORT_INFO(exp_info); 636 DEFINE_DMA_BUF_EXPORT_INFO(exp_info);
651 637
638 exp_info.exp_name = KBUILD_MODNAME;
639 exp_info.owner = drm->driver->fops->owner;
652 exp_info.ops = &tegra_gem_prime_dmabuf_ops; 640 exp_info.ops = &tegra_gem_prime_dmabuf_ops;
653 exp_info.size = gem->size; 641 exp_info.size = gem->size;
654 exp_info.flags = flags; 642 exp_info.flags = flags;