From 3ad19f3e10019cb72d51e506afb9ae6c6b1a9a75 Mon Sep 17 00:00:00 2001 From: Bibek Basu Date: Fri, 22 May 2015 15:25:53 +0530 Subject: [PATCH] gpu: nvgpu: gk20a: dma_alloc only if needed if vpr memory is carved out, then only call dma_alloc for secure memory. Bug 200057068 Change-Id: I12557cfaa48f7db729ccab17d3151916d35ce0f1 Signed-off-by: Bibek Basu Reviewed-on: http://git-master/r/746153 GVS: Gerrit_Virtual_Submit Reviewed-by: Venkat Moganty --- arch/arm/mach-tegra/common.c | 1 + drivers/gpu/nvgpu/gk20a/gk20a.c | 5 ++--- drivers/gpu/nvgpu/gk20a/platform_gk20a_tegra.c | 3 +++ 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/arch/arm/mach-tegra/common.c b/arch/arm/mach-tegra/common.c index 07faddfcfd7..542e2b6dbcc 100644 --- a/arch/arm/mach-tegra/common.c +++ b/arch/arm/mach-tegra/common.c @@ -135,6 +135,7 @@ phys_addr_t tegra_carveout_start; phys_addr_t tegra_carveout_size; phys_addr_t tegra_vpr_start; phys_addr_t tegra_vpr_size; +EXPORT_SYMBOL(tegra_vpr_size); phys_addr_t tegra_tsec_start; phys_addr_t tegra_tsec_size; phys_addr_t tegra_lp0_vec_start; diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.c b/drivers/gpu/nvgpu/gk20a/gk20a.c index 03d466ef3dc..f5f2c130241 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gk20a.c @@ -1310,11 +1310,10 @@ int gk20a_secure_page_alloc(struct platform_device *pdev) udelay(10); err = platform->secure_page_alloc(pdev); tegra_periph_reset_deassert(platform->clk[0]); + if (!err) + platform->secure_alloc_ready = true; } - if (!err) - platform->secure_alloc_ready = true; - return err; } diff --git a/drivers/gpu/nvgpu/gk20a/platform_gk20a_tegra.c b/drivers/gpu/nvgpu/gk20a/platform_gk20a_tegra.c index edeacdac6e5..c94d35176c1 100644 --- a/drivers/gpu/nvgpu/gk20a/platform_gk20a_tegra.c +++ b/drivers/gpu/nvgpu/gk20a/platform_gk20a_tegra.c @@ -39,6 +39,7 @@ #define TEGRA_GK20A_SIM_SIZE 0x1000 /*tbd: this is a high-side guess */ extern struct device tegra_vpr_dev; +extern phys_addr_t tegra_vpr_size; struct gk20a_platform t132_gk20a_tegra_platform; struct gk20a_emc_params { @@ -457,6 +458,8 @@ static int gk20a_tegra_probe(struct platform_device *dev) *platform = t132_gk20a_tegra_platform; } + if (tegra_vpr_size == 0) + platform->secure_page_alloc = NULL; gk20a_tegra_get_clocks(dev); return 0; -- 2.39.2