summaryrefslogtreecommitdiff
path: root/arch/arm/mach-rockchip/rk3288-board.c
diff options
context:
space:
mode:
authorNickey Yang Nickey Yang <nickey.yang@rock-chips.com>2016-12-29 10:47:30 +0800
committerSimon Glass <sjg@chromium.org>2017-01-11 20:23:50 -0700
commit9b8320167ea05ede1e5d30dfeb14850fdf2355b2 (patch)
tree88afdb23c71aa133fecac20f8bbb2e1837978dd5 /arch/arm/mach-rockchip/rk3288-board.c
parent2577d3f9245968161c797c0f5bacc4eacea0d67d (diff)
downloadu-boot-imx-9b8320167ea05ede1e5d30dfeb14850fdf2355b2.zip
u-boot-imx-9b8320167ea05ede1e5d30dfeb14850fdf2355b2.tar.gz
u-boot-imx-9b8320167ea05ede1e5d30dfeb14850fdf2355b2.tar.bz2
rockchip: rk3288: set isp/vop qos priority level
Isp-camera preview image will be broken when dual screen display mode. This patch set isp/vop qos level higher to solve this problem. We have verified this patch on rk3288-miniarm board. Signed-off-by: Nickey Yang <nickey.yang@rock-chips.com>
Diffstat (limited to 'arch/arm/mach-rockchip/rk3288-board.c')
-rw-r--r--arch/arm/mach-rockchip/rk3288-board.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/arch/arm/mach-rockchip/rk3288-board.c b/arch/arm/mach-rockchip/rk3288-board.c
index bca6075..8bf45f7 100644
--- a/arch/arm/mach-rockchip/rk3288-board.c
+++ b/arch/arm/mach-rockchip/rk3288-board.c
@@ -13,6 +13,7 @@
#include <asm/arch/clock.h>
#include <asm/arch/periph.h>
#include <asm/arch/pmu_rk3288.h>
+#include <asm/arch/qos_rk3288.h>
#include <asm/arch/boot_mode.h>
#include <asm/gpio.h>
#include <dm/pinctrl.h>
@@ -51,9 +52,28 @@ __weak int rk_board_late_init(void)
return 0;
}
+int rk3288_qos_init(void)
+{
+ int val = 2 << PRIORITY_HIGH_SHIFT | 2 << PRIORITY_LOW_SHIFT;
+ /* set vop qos to higher priority */
+ writel(val, CPU_AXI_QOS_PRIORITY + VIO0_VOP_QOS);
+ writel(val, CPU_AXI_QOS_PRIORITY + VIO1_VOP_QOS);
+
+ if (!fdt_node_check_compatible(gd->fdt_blob, 0,
+ "rockchip,rk3288-miniarm"))
+ {
+ /* set isp qos to higher priority */
+ writel(val, CPU_AXI_QOS_PRIORITY + VIO1_ISP_R_QOS);
+ writel(val, CPU_AXI_QOS_PRIORITY + VIO1_ISP_W0_QOS);
+ writel(val, CPU_AXI_QOS_PRIORITY + VIO1_ISP_W1_QOS);
+ }
+ return 0;
+}
+
int board_late_init(void)
{
setup_boot_mode();
+ rk3288_qos_init();
return rk_board_late_init();
}