From 9172f699d0ab1ff4553250744b54890f893dcdc2 Mon Sep 17 00:00:00 2001 From: Sandy Huang Date: Fri, 8 Oct 2021 11:12:54 +0800 Subject: [PATCH] drm/rockchip: add to consider buffer cacheable at vmap Signed-off-by: Sandy Huang Change-Id: I7d823ceea5b50d3fa0a2d6fc252367611d2bb1e1 --- drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c index 1d1a7dd9632d..d456b223f143 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c @@ -905,9 +905,13 @@ void *rockchip_gem_prime_vmap(struct drm_gem_object *obj) { struct rockchip_gem_object *rk_obj = to_rockchip_obj(obj); - if (rk_obj->pages) - return vmap(rk_obj->pages, rk_obj->num_pages, VM_MAP, - pgprot_writecombine(PAGE_KERNEL)); + if (rk_obj->pages) { + pgprot_t prot; + + prot = rk_obj->flags & ROCKCHIP_BO_CACHABLE ? PAGE_KERNEL : pgprot_writecombine(PAGE_KERNEL); + + return vmap(rk_obj->pages, rk_obj->num_pages, VM_MAP, prot); + } if (rk_obj->dma_attrs & DMA_ATTR_NO_KERNEL_MAPPING) return NULL;