From cb1cb6f184793969f4577cb8f49f602197adee61 Mon Sep 17 00:00:00 2001 From: Sandy Huang Date: Tue, 11 Jun 2019 16:29:48 +0800 Subject: [PATCH] drm/rockchip: gem: don't limit to 32bit mapping when not support LPAE Change-Id: Ia4fab3d63947ba693488fb58e3a104d400bd6e23 Signed-off-by: Mark Yao Signed-off-by: Jianqun Xu Signed-off-by: Meiyou Chen Signed-off-by: Sandy Huang --- drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c index 6a080da79d13..fccd525f31b4 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c @@ -19,6 +19,7 @@ #include #include +#include #include "rockchip_drm_drv.h" #include "rockchip_drm_gem.h" @@ -460,9 +461,15 @@ static void rockchip_gem_release_object(struct rockchip_gem_object *rk_obj) static struct rockchip_gem_object * rockchip_gem_alloc_object(struct drm_device *drm, unsigned int size) { + struct address_space *mapping; struct rockchip_gem_object *rk_obj; struct drm_gem_object *obj; +#ifdef CONFIG_ARM_LPAE + gfp_t gfp_mask = GFP_HIGHUSER | __GFP_RECLAIMABLE | __GFP_DMA32; +#else + gfp_t gfp_mask = GFP_HIGHUSER | __GFP_RECLAIMABLE; +#endif size = round_up(size, PAGE_SIZE); rk_obj = kzalloc(sizeof(*rk_obj), GFP_KERNEL); @@ -473,6 +480,9 @@ static struct rockchip_gem_object * drm_gem_object_init(drm, obj, size); + mapping = file_inode(obj->filp)->i_mapping; + mapping_set_gfp_mask(mapping, gfp_mask); + return rk_obj; }