diff options
author | Nickey Yang Nickey Yang <nickey.yang@rock-chips.com> | 2016-12-29 10:47:30 +0800 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2017-01-11 20:23:50 -0700 |
commit | 9b8320167ea05ede1e5d30dfeb14850fdf2355b2 (patch) | |
tree | 88afdb23c71aa133fecac20f8bbb2e1837978dd5 /arch/arm/mach-rockchip | |
parent | 2577d3f9245968161c797c0f5bacc4eacea0d67d (diff) | |
download | u-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')
-rw-r--r-- | arch/arm/mach-rockchip/rk3288-board.c | 20 |
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(); } |