Files
LibreELEC.tv/packages/linux/patches/rockchip/rockchip-0004-LOCAL-drm-rockchip-vop2-rk3568-change-Esmart-Cluster.patch
Christian Hewitt f490093c51 linux: update rockchip Linux 6.17.y patchset
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
2025-09-22 13:54:47 +00:00

96 lines
3.3 KiB
Diff

From 6c92a6c587ea30abd4eeab4e787ec537ce7f4279 Mon Sep 17 00:00:00 2001
From: Christian Hewitt <christianshewitt@gmail.com>
Date: Wed, 17 Sep 2025 11:17:20 +0000
Subject: [PATCH 004/113] LOCAL: drm/rockchip: vop2: rk3568: change
Esmart/Cluster/Smart ordering
Order Esmart planes before Cluster planes and Smart planes so Kodi
(which currently lacks the ability to dymanically order planes using
zpos) can show the OSD on-top of Video rather then behind.
Suggested-by: Jonas Karlman <jonas@kwiboo.se>
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
---
drivers/gpu/drm/rockchip/rockchip_vop2_reg.c | 58 ++++++++++----------
1 file changed, 29 insertions(+), 29 deletions(-)
diff --git a/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c b/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c
index 42a4833a90a3..e11df91b90a6 100644
--- a/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c
+++ b/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c
@@ -594,35 +594,6 @@ static const struct vop2_video_port_data rk3568_vop_video_ports[] = {
*/
static const struct vop2_win_data rk3568_vop_win_data[] = {
{
- .name = "Smart0-win0",
- .phys_id = ROCKCHIP_VOP2_SMART0,
- .base = 0x1c00,
- .possible_vp_mask = BIT(0) | BIT(1) | BIT(2),
- .formats = formats_smart,
- .nformats = ARRAY_SIZE(formats_smart),
- .format_modifiers = format_modifiers,
- /* 0xf means this layer can't attached to this VP */
- .layer_sel_id = { 3, 3, 3, 0xf },
- .supported_rotations = DRM_MODE_REFLECT_Y,
- .type = DRM_PLANE_TYPE_PRIMARY,
- .max_upscale_factor = 8,
- .max_downscale_factor = 8,
- .dly = { 20, 47, 41 },
- }, {
- .name = "Smart1-win0",
- .phys_id = ROCKCHIP_VOP2_SMART1,
- .possible_vp_mask = BIT(0) | BIT(1) | BIT(2),
- .formats = formats_smart,
- .nformats = ARRAY_SIZE(formats_smart),
- .format_modifiers = format_modifiers,
- .base = 0x1e00,
- .layer_sel_id = { 7, 7, 7, 0xf },
- .supported_rotations = DRM_MODE_REFLECT_Y,
- .type = DRM_PLANE_TYPE_PRIMARY,
- .max_upscale_factor = 8,
- .max_downscale_factor = 8,
- .dly = { 20, 47, 41 },
- }, {
.name = "Esmart1-win0",
.phys_id = ROCKCHIP_VOP2_ESMART1,
.possible_vp_mask = BIT(0) | BIT(1) | BIT(2),
@@ -682,6 +653,35 @@ static const struct vop2_win_data rk3568_vop_win_data[] = {
.max_downscale_factor = 4,
.dly = { 0, 27, 21 },
.feature = WIN_FEATURE_AFBDC | WIN_FEATURE_CLUSTER,
+ }, {
+ .name = "Smart0-win0",
+ .phys_id = ROCKCHIP_VOP2_SMART0,
+ .base = 0x1c00,
+ .possible_vp_mask = BIT(0) | BIT(1) | BIT(2),
+ .formats = formats_smart,
+ .nformats = ARRAY_SIZE(formats_smart),
+ .format_modifiers = format_modifiers,
+ /* 0xf means this layer can't attached to this VP */
+ .layer_sel_id = { 3, 3, 3, 0xf },
+ .supported_rotations = DRM_MODE_REFLECT_Y,
+ .type = DRM_PLANE_TYPE_PRIMARY,
+ .max_upscale_factor = 8,
+ .max_downscale_factor = 8,
+ .dly = { 20, 47, 41 },
+ }, {
+ .name = "Smart1-win0",
+ .phys_id = ROCKCHIP_VOP2_SMART1,
+ .possible_vp_mask = BIT(0) | BIT(1) | BIT(2),
+ .formats = formats_smart,
+ .nformats = ARRAY_SIZE(formats_smart),
+ .format_modifiers = format_modifiers,
+ .base = 0x1e00,
+ .layer_sel_id = { 7, 7, 7, 0xf },
+ .supported_rotations = DRM_MODE_REFLECT_Y,
+ .type = DRM_PLANE_TYPE_PRIMARY,
+ .max_upscale_factor = 8,
+ .max_downscale_factor = 8,
+ .dly = { 20, 47, 41 },
},
};
--
2.34.1