summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/xen/xen_drm_front_gem.c
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2019-02-14 14:07:17 +0100
committerDaniel Vetter <daniel.vetter@ffwll.ch>2019-02-14 14:07:18 +0100
commit8d451a4b6e9f4b52ae3d4cafe17486d8d0c6afb0 (patch)
tree299ada5e68937f5f356974c49ae0b3e5c4145f05 /drivers/gpu/drm/xen/xen_drm_front_gem.c
parent16065fcdd19ddb9e093192914ac863884f308766 (diff)
parent6649a95d35d850e417f125821a803ca7889c713c (diff)
downloadlinux-8d451a4b6e9f4b52ae3d4cafe17486d8d0c6afb0.tar.gz
linux-8d451a4b6e9f4b52ae3d4cafe17486d8d0c6afb0.tar.bz2
linux-8d451a4b6e9f4b52ae3d4cafe17486d8d0c6afb0.zip
Merge tag 'drm-misc-next-2019-02-11' of git://anongit.freedesktop.org/drm/drm-misc into drm-next
drm-misc-next for 5.1: UAPI Changes: - New fourcc for P010 and P016 formats Cross-subsystem Changes: Core Changes: - Removal of drm_calc_{h,v}scale_relaxed - A few fixes for DP-MST Driver Changes: - More drmP.h cleanups - A bunch of vkms fixes - Conversion of the Cadence DSI bridge and Allwinner DSI driver to the generic phy MIPI-DPHY API - New panel: Innolux EE101IA-01D Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> From: Maxime Ripard <maxime.ripard@bootlin.com> Link: https://patchwork.freedesktop.org/patch/msgid/20190211095220.3oeodszr2dgxrwqq@flea
Diffstat (limited to 'drivers/gpu/drm/xen/xen_drm_front_gem.c')
-rw-r--r--drivers/gpu/drm/xen/xen_drm_front_gem.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/drivers/gpu/drm/xen/xen_drm_front_gem.c b/drivers/gpu/drm/xen/xen_drm_front_gem.c
index d303a2e17f5e..53c376d55fcf 100644
--- a/drivers/gpu/drm/xen/xen_drm_front_gem.c
+++ b/drivers/gpu/drm/xen/xen_drm_front_gem.c
@@ -235,8 +235,14 @@ static int gem_mmap_obj(struct xen_gem_object *xen_obj,
vma->vm_flags &= ~VM_PFNMAP;
vma->vm_flags |= VM_MIXEDMAP;
vma->vm_pgoff = 0;
- vma->vm_page_prot =
- pgprot_writecombine(vm_get_page_prot(vma->vm_flags));
+ /*
+ * According to Xen on ARM ABI (xen/include/public/arch-arm.h):
+ * all memory which is shared with other entities in the system
+ * (including the hypervisor and other guests) must reside in memory
+ * which is mapped as Normal Inner Write-Back Outer Write-Back
+ * Inner-Shareable.
+ */
+ vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
/*
* vm_operations_struct.fault handler will be called if CPU access
@@ -282,8 +288,9 @@ void *xen_drm_front_gem_prime_vmap(struct drm_gem_object *gem_obj)
if (!xen_obj->pages)
return NULL;
+ /* Please see comment in gem_mmap_obj on mapping and attributes. */
return vmap(xen_obj->pages, xen_obj->num_pages,
- VM_MAP, pgprot_writecombine(PAGE_KERNEL));
+ VM_MAP, PAGE_KERNEL);
}
void xen_drm_front_gem_prime_vunmap(struct drm_gem_object *gem_obj,