From c57691331e5e1bb6dc9a9863c3daf9901990098c Mon Sep 17 00:00:00 2001 From: "Zikim,Wei" Date: Wed, 22 Feb 2017 22:22:14 +0800 Subject: [PATCH] video/rockchip: fix rga driver compile when LPAE Change-Id: Ifc50e0ae52ece8c93ab8fab4ddabc01916ace526 Signed-off-by: Zikim,Wei (cherry picked from commit c1f2cf28941e5a31e00b21025fe48260bb235b9a) --- drivers/video/rockchip/rga/rga_drv.c | 10 ++++++++-- drivers/video/rockchip/rga2/rga2_drv.c | 8 +++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/drivers/video/rockchip/rga/rga_drv.c b/drivers/video/rockchip/rga/rga_drv.c index 410d3fc27d27..171b09ad7f1b 100755 --- a/drivers/video/rockchip/rga/rga_drv.c +++ b/drivers/video/rockchip/rga/rga_drv.c @@ -1349,7 +1349,8 @@ static int __init rga_init(void) unsigned long *mmu_buf_virtual; uint32_t i; uint32_t *buf_p; - + uint32_t *buf; + /* malloc pre scale mid buf mmu table */ mmu_buf = kzalloc(1024*8, GFP_KERNEL); mmu_buf_virtual = kzalloc(1024*2*sizeof(unsigned long), GFP_KERNEL); @@ -1374,7 +1375,12 @@ static int __init rga_init(void) buf_p = kmalloc(1024*256, GFP_KERNEL); rga_mmu_buf.buf_virtual = buf_p; - rga_mmu_buf.buf = (uint32_t *)virt_to_phys((void *)((unsigned long)buf_p)); +#if (defined(CONFIG_ARM) && defined(CONFIG_ARM_LPAE)) + buf = (uint32_t *)(uint32_t)virt_to_phys((void *)((unsigned long)buf_p)); +#else + buf = (uint32_t *)virt_to_phys((void *)((unsigned long)buf_p)); +#endif + rga_mmu_buf.buf = buf; rga_mmu_buf.front = 0; rga_mmu_buf.back = 64*1024; rga_mmu_buf.size = 64*1024; diff --git a/drivers/video/rockchip/rga2/rga2_drv.c b/drivers/video/rockchip/rga2/rga2_drv.c index a42edc1f6061..b754c32e64db 100644 --- a/drivers/video/rockchip/rga2/rga2_drv.c +++ b/drivers/video/rockchip/rga2/rga2_drv.c @@ -1513,11 +1513,17 @@ static int __init rga2_init(void) { int ret; uint32_t *buf_p; + uint32_t *buf; /* malloc pre scale mid buf mmu table */ buf_p = kmalloc(1024*256, GFP_KERNEL); rga2_mmu_buf.buf_virtual = buf_p; - rga2_mmu_buf.buf = (uint32_t *)virt_to_phys((void *)((unsigned long)buf_p)); +#if (defined(CONFIG_ARM) && defined(CONFIG_ARM_LPAE)) + buf = (uint32_t *)(uint32_t)virt_to_phys((void *)((unsigned long)buf_p)); +#else + buf = (uint32_t *)virt_to_phys((void *)((unsigned long)buf_p)); +#endif + rga2_mmu_buf.buf = buf; rga2_mmu_buf.front = 0; rga2_mmu_buf.back = 64*1024; rga2_mmu_buf.size = 64*1024; -- 2.34.1