From d135266e27c50f6323aacc62e9b8ffce7bc4fbc8 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 | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c index c5b93dff950a..9fc236320936 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c @@ -588,9 +588,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); @@ -601,6 +607,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; }