From 8451d8d6b6c3d41ae8d81f09680114226dcd3aec Mon Sep 17 00:00:00 2001 From: Ahmed Ammar Date: Mon, 20 May 2013 20:09:54 +0200 Subject: [PATCH] amd-gpu: rework apertures * increase from 64MB to 96MB total memory * after some testing it seems that PHYS can be quite small compared to EMEM, therefore make the aperture split 16MB/80MB --- arch/arm/mach-mx5/mx51_efikamx.c | 2 +- drivers/mxc/amd-gpu/gsl_hal.c | 12 ++++++------ drivers/mxc/amd-gpu/include/gsl_halconfig.h | 5 +++-- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/arch/arm/mach-mx5/mx51_efikamx.c b/arch/arm/mach-mx5/mx51_efikamx.c index 528e4142f78..54118463756 100644 --- a/arch/arm/mach-mx5/mx51_efikamx.c +++ b/arch/arm/mach-mx5/mx51_efikamx.c @@ -290,7 +290,7 @@ static void __init mx51_efikamx_fixup(struct machine_desc *desc, struct tag *tag struct tag *mem_tag = 0; int total_mem = SZ_512M; int fb_mem = SZ_16M; - int gpu_mem = SZ_64M; + int gpu_mem = SZ_64M + SZ_32M; int sys_mem; mxc_set_cpu_type(MXC_CPU_MX51); diff --git a/drivers/mxc/amd-gpu/gsl_hal.c b/drivers/mxc/amd-gpu/gsl_hal.c index e3d2fb74b1a..e3cdae88721 100644 --- a/drivers/mxc/amd-gpu/gsl_hal.c +++ b/drivers/mxc/amd-gpu/gsl_hal.c @@ -174,12 +174,12 @@ kgsl_hal_init(void) va = (unsigned int)ioremap(gpu_reserved_mem, gpu_reserved_mem_size); if (!va) pr_err("%s: ioremap failed!\n", DRVNAME); - res_size = gpu_reserved_mem_size - GSL_HAL_SHMEM_SIZE_EMEM_NOMMU; + res_size = gpu_reserved_mem_size; } if (va) { /* it would be awesome if we didn't have to do this on module init.. */ - memset((void *)va, 0, res_size); + memset((void *)va, 0, gpu_reserved_mem_size); /* set up a "memchunk" so we know what we can iounmap on exit */ hal->memchunk.mmio_virt_base = (void *)va; @@ -195,9 +195,9 @@ kgsl_hal_init(void) hal->memspace[GSL_HAL_MEM2].mmio_virt_base = (void *) va; hal->memspace[GSL_HAL_MEM2].gpu_base = pa; - hal->memspace[GSL_HAL_MEM2].sizebytes = res_size; - va += res_size; - pa += res_size; + hal->memspace[GSL_HAL_MEM2].sizebytes = GSL_HAL_SHMEM_SIZE_EMEM_NOMMU_PHYS; + va += hal->memspace[GSL_HAL_MEM2].sizebytes; + pa += hal->memspace[GSL_HAL_MEM2].sizebytes; #ifdef GSL_HAL_DEBUG pr_info("%s: GSL_HAL_MEM2 aperture (PHYS) pa = 0x%p va = 0x%p size = 0x%08x\n", DRVNAME, @@ -214,7 +214,7 @@ kgsl_hal_init(void) } else { hal->memspace[GSL_HAL_MEM1].mmio_virt_base = (void *) va; hal->memspace[GSL_HAL_MEM1].gpu_base = pa; - hal->memspace[GSL_HAL_MEM1].sizebytes = GSL_HAL_SHMEM_SIZE_EMEM_NOMMU; + hal->memspace[GSL_HAL_MEM1].sizebytes = GSL_HAL_SHMEM_SIZE_EMEM_NOMMU_EMEM; } #ifdef GSL_HAL_DEBUG diff --git a/drivers/mxc/amd-gpu/include/gsl_halconfig.h b/drivers/mxc/amd-gpu/include/gsl_halconfig.h index 04d811835a8..8ffbdfeb4cd 100755 --- a/drivers/mxc/amd-gpu/include/gsl_halconfig.h +++ b/drivers/mxc/amd-gpu/include/gsl_halconfig.h @@ -38,8 +38,9 @@ #define GSL_HAL_SIZE_REG_G12 SZ_4K /* 4KB */ -#define GSL_HAL_SHMEM_SIZE_EMEM_MMU SZ_128M -#define GSL_HAL_SHMEM_SIZE_EMEM_NOMMU SZ_32M +#define GSL_HAL_SHMEM_SIZE_EMEM_MMU SZ_128M +#define GSL_HAL_SHMEM_SIZE_EMEM_NOMMU_EMEM SZ_64M + SZ_16M +#define GSL_HAL_SHMEM_SIZE_EMEM_NOMMU_PHYS SZ_16M /* physical memory area is reserved size minus emem area if no mmu */