Commit f81bdb6e authored by danh-arm's avatar danh-arm
Browse files

Merge pull request #375 from vwadekar/clear-videomem-region-v2

Tegra: fix logic to clear videomem regions
parents e04723e2 d49b9c80
...@@ -118,6 +118,7 @@ void tegra_memctrl_videomem_setup(uint64_t phys_base, uint32_t size_in_bytes) ...@@ -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_old = video_mem_base + (video_mem_size << 20);
uintptr_t vmem_end_new = phys_base + size_in_bytes; uintptr_t vmem_end_new = phys_base + size_in_bytes;
uint32_t regval; uint32_t regval;
uint64_t size;
/* /*
* The GPU is the user of the Video Memory region. In order to * 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) ...@@ -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"); INFO("Cleaning previous Video Memory Carveout\n");
disable_mmu_el3(); 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); zeromem16((void *)video_mem_base, video_mem_size << 20);
else if (video_mem_base < phys_base) } else {
zeromem16((void *)video_mem_base, phys_base - video_mem_base); if (video_mem_base < phys_base) {
else if (vmem_end_old > vmem_end_new) size = phys_base - video_mem_base;
zeromem16((void *)vmem_end_new, vmem_end_old - vmem_end_new); 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); enable_mmu_el3(0);
done: done:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment