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