Files
LibreELEC.tv/projects/Rockchip/devices/RK3328/patches/linux/default/linux-0007-experimental.patch
2019-12-31 09:09:33 +00:00

53 lines
2.1 KiB
Diff

From c3bcf805d77c97fe3b0c2b5f879816cdbf0d8d39 Mon Sep 17 00:00:00 2001
From: Jonas Karlman <jonas@kwiboo.se>
Date: Tue, 31 Dec 2019 08:09:41 +0000
Subject: [PATCH] HACK: drm/rockchip: set default win channel on rk3328
---
drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 3 +++
drivers/gpu/drm/rockchip/rockchip_drm_vop.h | 1 +
drivers/gpu/drm/rockchip/rockchip_vop_reg.c | 4 ++++
3 files changed, 8 insertions(+)
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
index b8c0d2fcc52a..5c2988c46cbb 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c
@@ -1879,6 +1879,9 @@ static int vop_initial(struct vop *vop)
vop->regsbak[i / 4] = readl_relaxed(vop->regs + i);
VOP_REG_SET(vop, misc, global_regdone_en, 1);
+ VOP_REG_SET(vop, misc, win_channel[0], 0x12);
+ VOP_REG_SET(vop, misc, win_channel[1], 0x34);
+ VOP_REG_SET(vop, misc, win_channel[2], 0x56);
VOP_REG_SET(vop, common, dsp_blank, 0);
for (i = 0; i < vop->data->win_size; i++) {
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.h b/drivers/gpu/drm/rockchip/rockchip_drm_vop.h
index 89fe8d5c7721..09d4c937acad 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.h
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.h
@@ -87,6 +87,7 @@ struct vop_common {
struct vop_misc {
struct vop_reg global_regdone_en;
+ struct vop_reg win_channel[4];
};
struct vop_intr {
diff --git a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c
index 73d24c6bbf05..67442fa03d3f 100644
--- a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c
+++ b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c
@@ -908,6 +908,10 @@ static const struct vop_output rk3328_output = {
static const struct vop_misc rk3328_misc = {
.global_regdone_en = VOP_REG(RK3328_SYS_CTRL, 0x1, 11),
+
+ .win_channel[0] = VOP_REG(RK3328_WIN0_CTRL2, 0xff, 0),
+ .win_channel[1] = VOP_REG(RK3328_WIN1_CTRL2, 0xff, 0),
+ .win_channel[2] = VOP_REG(RK3328_WIN2_CTRL2, 0xff, 0),
};
static const struct vop_common rk3328_common = {