mirror of
https://github.com/LibreELEC/LibreELEC.tv
synced 2025-09-24 19:46:01 +07:00
53 lines
2.1 KiB
Diff
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 = {
|