diff options
author | danh-arm <dan.handley@arm.com> | 2015-09-01 12:31:30 +0100 |
---|---|---|
committer | danh-arm <dan.handley@arm.com> | 2015-09-01 12:31:30 +0100 |
commit | f81bdb6e76a19e719731ce430150c9261a184cc2 (patch) | |
tree | 812e89fa96cc808cd106e9a4d3d87a4958791690 | |
parent | e04723e21362c322b7725662871153dadb9d3167 (diff) | |
parent | d49b9c80886b5d0873f90fe750e0ab292d532b99 (diff) |
Merge pull request #375 from vwadekar/clear-videomem-region-v2
Tegra: fix logic to clear videomem regions
-rw-r--r-- | plat/nvidia/tegra/common/drivers/memctrl/memctrl.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/plat/nvidia/tegra/common/drivers/memctrl/memctrl.c b/plat/nvidia/tegra/common/drivers/memctrl/memctrl.c index fff89519..0d8e370f 100644 --- a/plat/nvidia/tegra/common/drivers/memctrl/memctrl.c +++ b/plat/nvidia/tegra/common/drivers/memctrl/memctrl.c @@ -118,6 +118,7 @@ void tegra_memctrl_videomem_setup(uint64_t phys_base, uint32_t size_in_bytes) uintptr_t vmem_end_old = video_mem_base + (video_mem_size << 20); uintptr_t vmem_end_new = phys_base + size_in_bytes; uint32_t regval; + uint64_t size; /* * The GPU is the user of the Video Memory region. In order to @@ -153,12 +154,18 @@ void tegra_memctrl_videomem_setup(uint64_t phys_base, uint32_t size_in_bytes) INFO("Cleaning previous Video Memory Carveout\n"); disable_mmu_el3(); - if (phys_base > vmem_end_old || video_mem_base > vmem_end_new) + if (phys_base > vmem_end_old || video_mem_base > vmem_end_new) { zeromem16((void *)video_mem_base, video_mem_size << 20); - else if (video_mem_base < phys_base) - zeromem16((void *)video_mem_base, phys_base - video_mem_base); - else if (vmem_end_old > vmem_end_new) - zeromem16((void *)vmem_end_new, vmem_end_old - vmem_end_new); + } else { + if (video_mem_base < phys_base) { + size = phys_base - video_mem_base; + zeromem16((void *)video_mem_base, size); + } + if (vmem_end_old > vmem_end_new) { + size = vmem_end_old - vmem_end_new; + zeromem16((void *)vmem_end_new, size); + } + } enable_mmu_el3(0); done: |