All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* vop2: 3566 vs 3568: green screen on 3566; on 3568 all ok...
@ 2023-12-24 12:37 Piotr Oniszczuk
  2023-12-25  1:40 ` Andy Yan
  0 siblings, 1 reply; 7+ messages in thread
From: Piotr Oniszczuk @ 2023-12-24 12:37 UTC (permalink / raw
  To: Linux-rockchip

Hi * 

I have well working video decoding + rendering to drm planes on rk3568. 

On rk3566 however video playback gives mr green screen. 
Looking on 6.6.8 vop2 sources i see e.g. rk3568_vop_win_data[] is common for 3566 and 3568. 

I recall however Andy Yan (rockchip) said: 

"But take care that the vop on rk3566 has a special limitation: there are three windows(Cluster1/Esmart1/Smart1) that have a mirror lock, that means they can't be programmed framebuffer address independently , they can only share framebuffer address with Cluster0/Esmart0/Smart0”.

I suspect my 3566 green video issue is somehow result of "too" common vop2 code for 3566 & 3568 variants. 

Isn't that 3566 should have dedicated variant code to deal with 3566 limitations mentioned by Andy?



_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: vop2: 3566 vs 3568: green screen on 3566; on 3568 all ok...
  2023-12-24 12:37 vop2: 3566 vs 3568: green screen on 3566; on 3568 all ok Piotr Oniszczuk
@ 2023-12-25  1:40 ` Andy Yan
  2023-12-25 12:14   ` Piotr Oniszczuk
  0 siblings, 1 reply; 7+ messages in thread
From: Andy Yan @ 2023-12-25  1:40 UTC (permalink / raw
  To: Piotr Oniszczuk, Linux-rockchip

Hi Piotr:

On 12/24/23 20:37, Piotr Oniszczuk wrote:
> Hi *
> 
> I have well working video decoding + rendering to drm planes on rk3568.
> 
> On rk3566 however video playback gives mr green screen.

Please confirm that the video data you rendering to drm is afbc or non-afbc?
Please also run command "cat /sys/kernel/debug/dri/0/state" and upload the output when you get green screen on rk3036
For the convenience of comparison, please also give the dri/0/state when you playback the same video on rk3568.
> Looking on 6.6.8 vop2 sources i see e.g. rk3568_vop_win_data[] is common for 3566 and 3568.
> 
> I recall however Andy Yan (rockchip) said:
> 
> "But take care that the vop on rk3566 has a special limitation: there are three windows(Cluster1/Esmart1/Smart1) that have a mirror lock, that means they can't be programmed framebuffer address independently , they can only share framebuffer address with Cluster0/Esmart0/Smart0”.
> 
> I suspect my 3566 green video issue is somehow result of "too" common vop2 code for 3566 & 3568 variants.
> 
> Isn't that 3566 should have dedicated variant code to deal with 3566 limitations mentioned by Andy?
> 
> 
> 
> _______________________________________________
> Linux-rockchip mailing list
> Linux-rockchip@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-rockchip

_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: vop2: 3566 vs 3568: green screen on 3566; on 3568 all ok...
  2023-12-25  1:40 ` Andy Yan
@ 2023-12-25 12:14   ` Piotr Oniszczuk
  2023-12-26  1:41     ` Andy Yan
  0 siblings, 1 reply; 7+ messages in thread
From: Piotr Oniszczuk @ 2023-12-25 12:14 UTC (permalink / raw
  To: Andy Yan; +Cc: Linux-rockchip

Andy,

Thx for looking on this!

Before passing dri state logs - let me give some context why i’m asking here for help.

I’m developing 2 distros with goal to offer user convenient run of multimedia players (Kodi and MythTV): appliance and general distro.
Goal is out of box run of Kodi/MythTV in 2 rendering modes: EGL DAMBuf and DRM direct planes.

Currently i have out-of-box (no any SoC specific configs in Kodi/MythTV) for: rk3328/rk3399/H6/H313/H616/rpi3/rpi4.
Issues ia have are with: rk3566 and rk3568
 
Vanilla 6.6.8 kernel on 3568 not offers me well working out-of-box Kodi/MythTV in DRM direct planes - but i was able to patch vop2 to get such out-of-box operation (pls see patch below).

I have also issue with 3566 - where i also developed patch (also see below) - but i’m not able to get 3566 fully working (EGL DMAbuf is ok; in DRM Planes GUI is ok, but video playback gives part screen green part black; green/black border is vibrantly changing at playback)

Logs:

Pls find patch & DRI state logs from mainline 6.6.8 kernel with my vop2 patch applied:

1. rk3568: with patch like below 3568 works well out-of-box in EGL DAMBuf and DRM direct planes

—————————————patch begin————————————

This moves least capable "smart" planes declared first to end.
It workarounds issue of invisibe osd n drm_planes mode.

--- linux-6.6.1/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c	2023-11-15 13:27:45.063377031 +0100
+++ linux-6.6.1/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c	2023-11-15 13:14:23.825053113 +0100
@@ -140,33 +140,7 @@
  * @TODO describe the wind like cpu-map dt nodes;
  */
 static const struct vop2_win_data rk3568_vop_win_data[] = {
-	{
-		.name = "Smart0-win0",
-		.phys_id = ROCKCHIP_VOP2_SMART0,
-		.base = 0x1c00,
-		.formats = formats_win_lite,
-		.nformats = ARRAY_SIZE(formats_win_lite),
-		.format_modifiers = format_modifiers,
-		.layer_sel_id = 3,
-		.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,
-		.formats = formats_win_lite,
-		.nformats = ARRAY_SIZE(formats_win_lite),
-		.format_modifiers = format_modifiers,
-		.base = 0x1e00,
-		.layer_sel_id = 7,
-		.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,
 		.formats = formats_win_full_10bit_yuyv,
@@ -222,7 +196,33 @@
 		.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,
+		.formats = formats_win_lite,
+		.nformats = ARRAY_SIZE(formats_win_lite),
+		.format_modifiers = format_modifiers,
+		.layer_sel_id = 3,
+		.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,
+		.formats = formats_win_lite,
+		.nformats = ARRAY_SIZE(formats_win_lite),
+		.format_modifiers = format_modifiers,
+		.base = 0x1e00,
+		.layer_sel_id = 7,
+		.supported_rotations = DRM_MODE_REFLECT_Y,
+		.type = DRM_PLANE_TYPE_PRIMARY,
+		.max_upscale_factor = 8,
+		.max_downscale_factor = 8,
+		.dly = { 20, 47, 41 },
+	}
 };

 static const struct vop2_data rk3528_vop = { 

—————————————patch end————————————     

---------------------------------------k3568 dir state log:
cat /sys/kernel/debug/dri/0/state
plane[31]: Esmart1-win0
        crtc=video_port0
        fb=82
                allocated by = mythfrontend
                refcount=2
                format=NV12 little-endian (0x3231564e)
                modifier=0x0
                size=1920x1080
                layers:
                        size[0]=1920x1080
                        pitch[0]=1920
                        offset[0]=0
                        obj[0]:
                                name=0
                                refcount=3
                                start=00000000
                                size=3657728
                                imported=yes
                        size[1]=960x540
                        pitch[1]=1920
                        offset[1]=2088960
                        obj[1]:
                                name=0
                                refcount=3
                                start=00000000
                                size=3657728
                                imported=yes
        crtc-pos=1920x1080+0+0
        src-pos=1920.000000x1080.000000+0.000000+0.000000
        rotation=1
        normalized-zpos=0
        color-encoding=ITU-R BT.601 YCbCr
        color-range=YCbCr limited range
plane[37]: Esmart0-win0
        crtc=video_port0
        fb=76
                allocated by = mythfrontend
                refcount=2
                format=AR24 little-endian (0x34325241)
                modifier=0x0
                size=1920x1080
                layers:
                        size[0]=1920x1080
                        pitch[0]=7680
                        offset[0]=0
                        obj[0]:
                                name=0
                                refcount=3
                                start=00000000
                                size=8294400
                                imported=no
        crtc-pos=1920x1080+0+0
        src-pos=1920.000000x1080.000000+0.000000+0.000000
        rotation=1
        normalized-zpos=1
        color-encoding=ITU-R BT.601 YCbCr
        color-range=YCbCr limited range
plane[43]: Cluster0-win0
        crtc=(null)
        fb=0
        crtc-pos=0x0+0+0
        src-pos=0.000000x0.000000+0.000000+0.000000
        rotation=1
        normalized-zpos=2
        color-encoding=ITU-R BT.601 YCbCr
        color-range=YCbCr limited range
plane[49]: Cluster1-win0
        crtc=(null)
        fb=0
        crtc-pos=0x0+0+0
        src-pos=0.000000x0.000000+0.000000+0.000000
        rotation=1
        normalized-zpos=3
        color-encoding=ITU-R BT.601 YCbCr
        color-range=YCbCr limited range
plane[55]: Smart0-win0
        crtc=(null)
        fb=0
        crtc-pos=0x0+0+0
        src-pos=0.000000x0.000000+0.000000+0.000000
        rotation=1
        normalized-zpos=4
        color-encoding=ITU-R BT.601 YCbCr
        color-range=YCbCr limited range
plane[61]: Smart1-win0
        crtc=(null)
        fb=0
        crtc-pos=0x0+0+0
        src-pos=0.000000x0.000000+0.000000+0.000000
        rotation=1
        normalized-zpos=5
        color-encoding=ITU-R BT.601 YCbCr
        color-range=YCbCr limited range
crtc[67]: video_port0
        enable=1
        active=1
        self_refresh_active=0
        planes_changed=1
        mode_changed=0
        active_changed=0
        connectors_changed=0
        color_mgmt_changed=0
        plane_mask=3
        connector_mask=1
        encoder_mask=1
        mode: "1920x1080": 50 148500 1920 2448 2492 2640 1080 1084 1089 1125 0x40 0x5
connector[69]: HDMI-A-1
        crtc=video_port0
        self_refresh_aware=0
        max_requested_bpc=16
        colorspace=Default
root@Myth-Frontend-62f0f2b13dc0:~ #
---------------------------------------k3568 dir state log:






On rk3566: with patch below i have:
- out-of-box working GUI & video playback in EGL DMAbuf
- out-of-box working GUI ok but video playback is half-green in DRM planes

—————————————patch begin————————————
--- linux-6.6.8/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c	2023-12-25 12:33:35.686676731 +0100
+++ linux-6.6.8/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c	2023-12-23 14:40:48.986679895 +0100
@@ -139,6 +139,92 @@
  *
  * @TODO describe the wind like cpu-map dt nodes;
  */
+static const struct vop2_win_data rk3566_vop_win_data[] = {
+    {
+		.name = "Smart0-win0",
+		.phys_id = ROCKCHIP_VOP2_SMART0,
+		.base = 0x1c00,
+		.formats = formats_win_lite,
+		.nformats = ARRAY_SIZE(formats_win_lite),
+		.format_modifiers = format_modifiers,
+		.layer_sel_id = 3,
+		.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,
+		.formats = formats_win_lite,
+		.nformats = ARRAY_SIZE(formats_win_lite),
+		.format_modifiers = format_modifiers,
+		.base = 0x1e00,
+		.layer_sel_id = 7,
+		.supported_rotations = DRM_MODE_REFLECT_Y,
+		.type = DRM_PLANE_TYPE_PRIMARY,
+		.max_upscale_factor = 8,
+		.max_downscale_factor = 8,
+		.dly = { 20, 47, 41 },
+	}, {
+		.name = "Cluster0-win0",
+		.phys_id = ROCKCHIP_VOP2_CLUSTER0,
+		.base = 0x1000,
+		.formats = formats_win_full_10bit,
+		.nformats = ARRAY_SIZE(formats_win_full_10bit),
+		.format_modifiers = format_modifiers_afbc,
+		.layer_sel_id = 0,
+		.supported_rotations = DRM_MODE_ROTATE_90 | DRM_MODE_ROTATE_270 |
+					DRM_MODE_REFLECT_X | DRM_MODE_REFLECT_Y,
+		.max_upscale_factor = 4,
+		.max_downscale_factor = 4,
+		.dly = { 0, 27, 21 },
+		.type = DRM_PLANE_TYPE_OVERLAY,
+		.feature = WIN_FEATURE_AFBDC | WIN_FEATURE_CLUSTER,
+	}, {
+		.name = "Cluster1-win0",
+		.phys_id = ROCKCHIP_VOP2_CLUSTER1,
+		.base = 0x1200,
+		.formats = formats_win_full_10bit,
+		.nformats = ARRAY_SIZE(formats_win_full_10bit),
+		.format_modifiers = format_modifiers_afbc,
+		.layer_sel_id = 1,
+		.supported_rotations = DRM_MODE_ROTATE_90 | DRM_MODE_ROTATE_270 |
+					DRM_MODE_REFLECT_X | DRM_MODE_REFLECT_Y,
+		.type = DRM_PLANE_TYPE_OVERLAY,
+		.max_upscale_factor = 4,
+		.max_downscale_factor = 4,
+		.dly = { 0, 27, 21 },
+		.feature = WIN_FEATURE_AFBDC | WIN_FEATURE_CLUSTER,
+	}, {
+		.name = "Esmart1-win0",
+		.phys_id = ROCKCHIP_VOP2_ESMART1,
+		.formats = formats_win_full_10bit_yuyv,
+		.nformats = ARRAY_SIZE(formats_win_full_10bit_yuyv),
+		.format_modifiers = format_modifiers,
+		.base = 0x1a00,
+		.layer_sel_id = 6,
+		.supported_rotations = DRM_MODE_REFLECT_Y,
+		.type = DRM_PLANE_TYPE_PRIMARY,
+		.max_upscale_factor = 8,
+		.max_downscale_factor = 8,
+		.dly = { 20, 47, 41 },
+	}, {
+		.name = "Esmart0-win0",
+		.phys_id = ROCKCHIP_VOP2_ESMART0,
+		.formats = formats_win_full_10bit_yuyv,
+		.nformats = ARRAY_SIZE(formats_win_full_10bit_yuyv),
+		.format_modifiers = format_modifiers,
+		.base = 0x1800,
+		.layer_sel_id = 2,
+		.supported_rotations = DRM_MODE_REFLECT_Y,
+		.type = DRM_PLANE_TYPE_PRIMARY,
+		.max_upscale_factor = 8,
+		.max_downscale_factor = 8,
+		.dly = { 20, 47, 41 },
+	}
+};
+
 static const struct vop2_win_data rk3568_vop_win_data[] = {
     {
 		.name = "Esmart1-win0",
@@ -240,7 +326,7 @@
 	.max_input = { 4096, 2304 },
 	.max_output = { 4096, 2304 },
 	.vp = rk3568_vop_video_ports,
-	.win = rk3568_vop_win_data,
+	.win = rk3566_vop_win_data,
 	.win_size = ARRAY_SIZE(rk3568_vop_win_data),
 	.soc_id = 3566,
 };
—————————————patch end————————————


---------------------------------------k3566 dir state log:
root@Myth-Frontend-4610eb297888:~ # cat /sys/kernel/debug/dri/0/state
plane[31]: Smart0-win0
        crtc=video_port0
        fb=53
                allocated by = [fbcon]
                refcount=2
                format=XR24 little-endian (0x34325258)
                modifier=0x0
                size=1920x1080
                layers:
                        size[0]=1920x1080
                        pitch[0]=7680
                        offset[0]=0
                        obj[0]:
                                name=1
                                refcount=4
                                start=00100004
                                size=8294400
                                imported=no
        crtc-pos=1920x1080+0+0
        src-pos=1920.000000x1080.000000+0.000000+0.000000
        rotation=1
        normalized-zpos=0
        color-encoding=ITU-R BT.601 YCbCr
        color-range=YCbCr limited range
plane[37]: Cluster0-win0
        crtc=video_port0
        fb=67
                allocated by = mythfrontend
                refcount=2
                format=NV12 little-endian (0x3231564e)
                modifier=0x0
                size=1920x1080
                layers:
                        size[0]=1920x1080
                        pitch[0]=1920
                        offset[0]=0
                        obj[0]:
                                name=0
                                refcount=3
                                start=00000000
                                size=3657728
                                imported=yes
                        size[1]=960x540
                        pitch[1]=1920
                        offset[1]=2088960
                        obj[1]:
                                name=0
                                refcount=3
                                start=00000000
                                size=3657728
                                imported=yes
        crtc-pos=1920x1080+0+0
        src-pos=1920.000000x1080.000000+0.000000+0.000000
        rotation=1
        normalized-zpos=2
        color-encoding=ITU-R BT.601 YCbCr
        color-range=YCbCr limited range
plane[43]: Esmart0-win0
        crtc=video_port0
        fb=57
                allocated by = mythfrontend
                refcount=2
                format=AR24 little-endian (0x34325241)
                modifier=0x0
                size=1920x1080
                layers:
                        size[0]=1920x1080
                        pitch[0]=7680
                        offset[0]=0
                        obj[0]:
                                name=0
                                refcount=3
                                start=00000000
                                size=8294400
                                imported=no
        crtc-pos=1920x1080+0+0
        src-pos=1920.000000x1080.000000+0.000000+0.000000
        rotation=1
        normalized-zpos=1
        color-encoding=ITU-R BT.601 YCbCr
        color-range=YCbCr limited range
crtc[49]: video_port0
        enable=1
        active=1
        self_refresh_active=0
        planes_changed=1
        mode_changed=0
        active_changed=0
        connectors_changed=0
        color_mgmt_changed=0
        plane_mask=7
        connector_mask=1
        encoder_mask=1
        mode: "1920x1080": 50 148500 1920 2448 2492 2640 1080 1084 1089 1125 0x40 0x5
connector[51]: HDMI-A-1
        crtc=video_port0
        self_refresh_aware=0
        max_requested_bpc=16
        colorspace=Default
root@Myth-Frontend-4610eb297888:~ #
---------------------------------------k3566 dir state log:

pls let me know if any other info is needed to move forward with this….



> Wiadomość napisana przez Andy Yan <andy.yan@rock-chips.com> w dniu 25.12.2023, o godz. 02:40:
> 
> Hi Piotr:
> 
> On 12/24/23 20:37, Piotr Oniszczuk wrote:
>> Hi *
>> I have well working video decoding + rendering to drm planes on rk3568.
>> On rk3566 however video playback gives mr green screen.
> 
> Please confirm that the video data you rendering to drm is afbc or non-afbc?
> Please also run command "cat /sys/kernel/debug/dri/0/state" and upload the output when you get green screen on rk3036
> For the convenience of comparison, please also give the dri/0/state when you playback the same video on rk3568.
>> Looking on 6.6.8 vop2 sources i see e.g. rk3568_vop_win_data[] is common for 3566 and 3568.
>> I recall however Andy Yan (rockchip) said:
>> "But take care that the vop on rk3566 has a special limitation: there are three windows(Cluster1/Esmart1/Smart1) that have a mirror lock, that means they can't be programmed framebuffer address independently , they can only share framebuffer address with Cluster0/Esmart0/Smart0”.
>> I suspect my 3566 green video issue is somehow result of "too" common vop2 code for 3566 & 3568 variants.
>> Isn't that 3566 should have dedicated variant code to deal with 3566 limitations mentioned by Andy?
>> _______________________________________________
>> Linux-rockchip mailing list
>> Linux-rockchip@lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-rockchip


_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: vop2: 3566 vs 3568: green screen on 3566; on 3568 all ok...
  2023-12-25 12:14   ` Piotr Oniszczuk
@ 2023-12-26  1:41     ` Andy Yan
  2023-12-26 11:22       ` Piotr Oniszczuk
  0 siblings, 1 reply; 7+ messages in thread
From: Andy Yan @ 2023-12-26  1:41 UTC (permalink / raw
  To: Piotr Oniszczuk; +Cc: Linux-rockchip

Hi Piotr,

On 12/25/23 20:14, Piotr Oniszczuk wrote:
> Andy,
> 
> Thx for looking on this!
> 
> Before passing dri state logs - let me give some context why i’m asking here for help.
> 
> I’m developing 2 distros with goal to offer user convenient run of multimedia players (Kodi and MythTV): appliance and general distro.
> Goal is out of box run of Kodi/MythTV in 2 rendering modes: EGL DAMBuf and DRM direct planes.
> 
> Currently i have out-of-box (no any SoC specific configs in Kodi/MythTV) for: rk3328/rk3399/H6/H313/H616/rpi3/rpi4.
> Issues ia have are with: rk3566 and rk3568
>   

Yes, it is a cool project, I run it on rk3566-box-demo for a while last year.

> Vanilla 6.6.8 kernel on 3568 not offers me well working out-of-box Kodi/MythTV in DRM direct planes - but i was able to patch vop2 to get such out-of-box operation (pls see patch below).
> 
> I have also issue with 3566 - where i also developed patch (also see below) - but i’m not able to get 3566 fully working (EGL DMAbuf is ok; in DRM Planes GUI is ok, but video playback gives part screen green part black; green/black border is vibrantly changing at playback)
> 
> Logs:
> 
> Pls find patch & DRI state logs from mainline 6.6.8 kernel with my vop2 patch applied:
> 
> 1. rk3568: with patch like below 3568 works well out-of-box in EGL DAMBuf and DRM direct planes
> 
> —————————————patch begin————————————
> 
> This moves least capable "smart" planes declared first to end.
> It workarounds issue of invisibe osd n drm_planes mode.
> 
> --- linux-6.6.1/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c	2023-11-15 13:27:45.063377031 +0100
> +++ linux-6.6.1/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c	2023-11-15 13:14:23.825053113 +0100
> @@ -140,33 +140,7 @@
>    * @TODO describe the wind like cpu-map dt nodes;
>    */
>   static const struct vop2_win_data rk3568_vop_win_data[] = {
> -	{
> -		.name = "Smart0-win0",
> -		.phys_id = ROCKCHIP_VOP2_SMART0,
> -		.base = 0x1c00,
> -		.formats = formats_win_lite,
> -		.nformats = ARRAY_SIZE(formats_win_lite),
> -		.format_modifiers = format_modifiers,
> -		.layer_sel_id = 3,
> -		.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,
> -		.formats = formats_win_lite,
> -		.nformats = ARRAY_SIZE(formats_win_lite),
> -		.format_modifiers = format_modifiers,
> -		.base = 0x1e00,
> -		.layer_sel_id = 7,
> -		.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,
>   		.formats = formats_win_full_10bit_yuyv,
> @@ -222,7 +196,33 @@
>   		.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,
> +		.formats = formats_win_lite,
> +		.nformats = ARRAY_SIZE(formats_win_lite),
> +		.format_modifiers = format_modifiers,
> +		.layer_sel_id = 3,
> +		.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,
> +		.formats = formats_win_lite,
> +		.nformats = ARRAY_SIZE(formats_win_lite),
> +		.format_modifiers = format_modifiers,
> +		.base = 0x1e00,
> +		.layer_sel_id = 7,
> +		.supported_rotations = DRM_MODE_REFLECT_Y,
> +		.type = DRM_PLANE_TYPE_PRIMARY,
> +		.max_upscale_factor = 8,
> +		.max_downscale_factor = 8,
> +		.dly = { 20, 47, 41 },
> +	}
>   };
> 
>   static const struct vop2_data rk3528_vop = {
> 
> —————————————patch end————————————
> 
> ---------------------------------------k3568 dir state log:
> cat /sys/kernel/debug/dri/0/state
> plane[31]: Esmart1-win0
>          crtc=video_port0
>          fb=82
>                  allocated by = mythfrontend
>                  refcount=2
>                  format=NV12 little-endian (0x3231564e)
>                  modifier=0x0
>                  size=1920x1080
>                  layers:
>                          size[0]=1920x1080
>                          pitch[0]=1920
>                          offset[0]=0
>                          obj[0]:
>                                  name=0
>                                  refcount=3
>                                  start=00000000
>                                  size=3657728
>                                  imported=yes
>                          size[1]=960x540
>                          pitch[1]=1920
>                          offset[1]=2088960
>                          obj[1]:
>                                  name=0
>                                  refcount=3
>                                  start=00000000
>                                  size=3657728
>                                  imported=yes
>          crtc-pos=1920x1080+0+0
>          src-pos=1920.000000x1080.000000+0.000000+0.000000
>          rotation=1
>          normalized-zpos=0
>          color-encoding=ITU-R BT.601 YCbCr
>          color-range=YCbCr limited range
> plane[37]: Esmart0-win0
>          crtc=video_port0
>          fb=76
>                  allocated by = mythfrontend
>                  refcount=2
>                  format=AR24 little-endian (0x34325241)
>                  modifier=0x0
>                  size=1920x1080
>                  layers:
>                          size[0]=1920x1080
>                          pitch[0]=7680
>                          offset[0]=0
>                          obj[0]:
>                                  name=0
>                                  refcount=3
>                                  start=00000000
>                                  size=8294400
>                                  imported=no
>          crtc-pos=1920x1080+0+0
>          src-pos=1920.000000x1080.000000+0.000000+0.000000
>          rotation=1
>          normalized-zpos=1
>          color-encoding=ITU-R BT.601 YCbCr
>          color-range=YCbCr limited range
> plane[43]: Cluster0-win0
>          crtc=(null)
>          fb=0
>          crtc-pos=0x0+0+0
>          src-pos=0.000000x0.000000+0.000000+0.000000
>          rotation=1
>          normalized-zpos=2
>          color-encoding=ITU-R BT.601 YCbCr
>          color-range=YCbCr limited range
> plane[49]: Cluster1-win0
>          crtc=(null)
>          fb=0
>          crtc-pos=0x0+0+0
>          src-pos=0.000000x0.000000+0.000000+0.000000
>          rotation=1
>          normalized-zpos=3
>          color-encoding=ITU-R BT.601 YCbCr
>          color-range=YCbCr limited range
> plane[55]: Smart0-win0
>          crtc=(null)
>          fb=0
>          crtc-pos=0x0+0+0
>          src-pos=0.000000x0.000000+0.000000+0.000000
>          rotation=1
>          normalized-zpos=4
>          color-encoding=ITU-R BT.601 YCbCr
>          color-range=YCbCr limited range
> plane[61]: Smart1-win0
>          crtc=(null)
>          fb=0
>          crtc-pos=0x0+0+0
>          src-pos=0.000000x0.000000+0.000000+0.000000
>          rotation=1
>          normalized-zpos=5
>          color-encoding=ITU-R BT.601 YCbCr
>          color-range=YCbCr limited range
> crtc[67]: video_port0
>          enable=1
>          active=1
>          self_refresh_active=0
>          planes_changed=1
>          mode_changed=0
>          active_changed=0
>          connectors_changed=0
>          color_mgmt_changed=0
>          plane_mask=3
>          connector_mask=1
>          encoder_mask=1
>          mode: "1920x1080": 50 148500 1920 2448 2492 2640 1080 1084 1089 1125 0x40 0x5
> connector[69]: HDMI-A-1
>          crtc=video_port0
>          self_refresh_aware=0
>          max_requested_bpc=16
>          colorspace=Default
> root@Myth-Frontend-62f0f2b13dc0:~ #
> ---------------------------------------k3568 dir state log:
> 
> 
> 
> 
> 
> 
> On rk3566: with patch below i have:
> - out-of-box working GUI & video playback in EGL DMAbuf
> - out-of-box working GUI ok but video playback is half-green in DRM planes
> 
> —————————————patch begin————————————
> --- linux-6.6.8/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c	2023-12-25 12:33:35.686676731 +0100
> +++ linux-6.6.8/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c	2023-12-23 14:40:48.986679895 +0100
> @@ -139,6 +139,92 @@
>    *
>    * @TODO describe the wind like cpu-map dt nodes;
>    */
> +static const struct vop2_win_data rk3566_vop_win_data[] = {
> +    {
> +		.name = "Smart0-win0",
> +		.phys_id = ROCKCHIP_VOP2_SMART0,
> +		.base = 0x1c00,
> +		.formats = formats_win_lite,
> +		.nformats = ARRAY_SIZE(formats_win_lite),
> +		.format_modifiers = format_modifiers,
> +		.layer_sel_id = 3,
> +		.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,
> +		.formats = formats_win_lite,
> +		.nformats = ARRAY_SIZE(formats_win_lite),
> +		.format_modifiers = format_modifiers,
> +		.base = 0x1e00,
> +		.layer_sel_id = 7,
> +		.supported_rotations = DRM_MODE_REFLECT_Y,
> +		.type = DRM_PLANE_TYPE_PRIMARY,
> +		.max_upscale_factor = 8,
> +		.max_downscale_factor = 8,
> +		.dly = { 20, 47, 41 },
> +	}, {
> +		.name = "Cluster0-win0",
> +		.phys_id = ROCKCHIP_VOP2_CLUSTER0,
> +		.base = 0x1000,
> +		.formats = formats_win_full_10bit,
> +		.nformats = ARRAY_SIZE(formats_win_full_10bit),
> +		.format_modifiers = format_modifiers_afbc,
> +		.layer_sel_id = 0,
> +		.supported_rotations = DRM_MODE_ROTATE_90 | DRM_MODE_ROTATE_270 |
> +					DRM_MODE_REFLECT_X | DRM_MODE_REFLECT_Y,
> +		.max_upscale_factor = 4,
> +		.max_downscale_factor = 4,
> +		.dly = { 0, 27, 21 },
> +		.type = DRM_PLANE_TYPE_OVERLAY,
> +		.feature = WIN_FEATURE_AFBDC | WIN_FEATURE_CLUSTER,
> +	}, {
> +		.name = "Cluster1-win0",
> +		.phys_id = ROCKCHIP_VOP2_CLUSTER1,
> +		.base = 0x1200,
> +		.formats = formats_win_full_10bit,
> +		.nformats = ARRAY_SIZE(formats_win_full_10bit),
> +		.format_modifiers = format_modifiers_afbc,
> +		.layer_sel_id = 1,
> +		.supported_rotations = DRM_MODE_ROTATE_90 | DRM_MODE_ROTATE_270 |
> +					DRM_MODE_REFLECT_X | DRM_MODE_REFLECT_Y,
> +		.type = DRM_PLANE_TYPE_OVERLAY,
> +		.max_upscale_factor = 4,
> +		.max_downscale_factor = 4,
> +		.dly = { 0, 27, 21 },
> +		.feature = WIN_FEATURE_AFBDC | WIN_FEATURE_CLUSTER,
> +	}, {
> +		.name = "Esmart1-win0",
> +		.phys_id = ROCKCHIP_VOP2_ESMART1,
> +		.formats = formats_win_full_10bit_yuyv,
> +		.nformats = ARRAY_SIZE(formats_win_full_10bit_yuyv),
> +		.format_modifiers = format_modifiers,
> +		.base = 0x1a00,
> +		.layer_sel_id = 6,
> +		.supported_rotations = DRM_MODE_REFLECT_Y,
> +		.type = DRM_PLANE_TYPE_PRIMARY,
> +		.max_upscale_factor = 8,
> +		.max_downscale_factor = 8,
> +		.dly = { 20, 47, 41 },
> +	}, {
> +		.name = "Esmart0-win0",
> +		.phys_id = ROCKCHIP_VOP2_ESMART0,
> +		.formats = formats_win_full_10bit_yuyv,
> +		.nformats = ARRAY_SIZE(formats_win_full_10bit_yuyv),
> +		.format_modifiers = format_modifiers,
> +		.base = 0x1800,
> +		.layer_sel_id = 2,
> +		.supported_rotations = DRM_MODE_REFLECT_Y,
> +		.type = DRM_PLANE_TYPE_PRIMARY,
> +		.max_upscale_factor = 8,
> +		.max_downscale_factor = 8,
> +		.dly = { 20, 47, 41 },
> +	}
> +};
> +
>   static const struct vop2_win_data rk3568_vop_win_data[] = {
>       {
>   		.name = "Esmart1-win0",
> @@ -240,7 +326,7 @@
>   	.max_input = { 4096, 2304 },
>   	.max_output = { 4096, 2304 },
>   	.vp = rk3568_vop_video_ports,
> -	.win = rk3568_vop_win_data,
> +	.win = rk3566_vop_win_data,
>   	.win_size = ARRAY_SIZE(rk3568_vop_win_data),
>   	.soc_id = 3566,
>   };
> —————————————patch end————————————
> 
> 
> ---------------------------------------k3566 dir state log:
> root@Myth-Frontend-4610eb297888:~ # cat /sys/kernel/debug/dri/0/state
> plane[31]: Smart0-win0
>          crtc=video_port0
>          fb=53
>                  allocated by = [fbcon]
>                  refcount=2
>                  format=XR24 little-endian (0x34325258)
>                  modifier=0x0
>                  size=1920x1080
>                  layers:
>                          size[0]=1920x1080
>                          pitch[0]=7680
>                          offset[0]=0
>                          obj[0]:
>                                  name=1
>                                  refcount=4
>                                  start=00100004
>                                  size=8294400
>                                  imported=no
>          crtc-pos=1920x1080+0+0
>          src-pos=1920.000000x1080.000000+0.000000+0.000000
>          rotation=1
>          normalized-zpos=0
>          color-encoding=ITU-R BT.601 YCbCr
>          color-range=YCbCr limited range
> plane[37]: Cluster0-win0
>          crtc=video_port0
>          fb=67
>                  allocated by = mythfrontend
>                  refcount=2
>                  format=NV12 little-endian (0x3231564e)
>                  modifier=0x0
>                  size=1920x1080
>                  layers:
>                          size[0]=1920x1080
>                          pitch[0]=1920
>                          offset[0]=0
>                          obj[0]:
>                                  name=0
>                                  refcount=3
>                                  start=00000000
>                                  size=3657728
>                                  imported=yes
>                          size[1]=960x540
>                          pitch[1]=1920
>                          offset[1]=2088960
>                          obj[1]:
>                                  name=0
>                                  refcount=3
>                                  start=00000000
>                                  size=3657728
>                                  imported=yes
>          crtc-pos=1920x1080+0+0
>          src-pos=1920.000000x1080.000000+0.000000+0.000000
>          rotation=1
>          normalized-zpos=2
>          color-encoding=ITU-R BT.601 YCbCr
>          color-range=YCbCr limited range
> plane[43]: Esmart0-win0
>          crtc=video_port0
>          fb=57
>                  allocated by = mythfrontend
>                  refcount=2
>                  format=AR24 little-endian (0x34325241)
>                  modifier=0x0
>                  size=1920x1080
>                  layers:
>                          size[0]=1920x1080
>                          pitch[0]=7680
>                          offset[0]=0
>                          obj[0]:
>                                  name=0
>                                  refcount=3
>                                  start=00000000
>                                  size=8294400
>                                  imported=no
>          crtc-pos=1920x1080+0+0
>          src-pos=1920.000000x1080.000000+0.000000+0.000000
>          rotation=1
>          normalized-zpos=1
>          color-encoding=ITU-R BT.601 YCbCr
>          color-range=YCbCr limited range
> crtc[49]: video_port0
>          enable=1
>          active=1
>          self_refresh_active=0
>          planes_changed=1
>          mode_changed=0
>          active_changed=0
>          connectors_changed=0
>          color_mgmt_changed=0
>          plane_mask=7
>          connector_mask=1
>          encoder_mask=1
>          mode: "1920x1080": 50 148500 1920 2448 2492 2640 1080 1084 1089 1125 0x40 0x5
> connector[51]: HDMI-A-1
>          crtc=video_port0
>          self_refresh_aware=0
>          max_requested_bpc=16
>          colorspace=Default
> root@Myth-Frontend-4610eb297888:~ #
> ---------------------------------------k3566 dir state log:


The dri/state dump already indicates the root case of the problem:

For rk3566/rk3568, the Cluster windows only support AFBC based RGB or YUV format,
linear formats(such as NV12 you used for Cluster0-win0 on rk3566) are not supported, these
linear formats are only support by Esmart(RGB/YUV),smart(RGB only) windows.

Compared with rk3568 you use, the NV12 is committed to Esmart1, and XRGB UI is
committed to Esmart0.
But on rk3566, there are only three windows/plane you can use, if you can only decoder
linear NV12, it should be committed to Esmart0, and use Smart0 for UI.


But when the vop2 drivers first lands, it mistakenly add linear formats(NV12/NV16) to
Cluster windows format lists, this will mislead user space.

I have a patch series to fix this that already be merged in linux 6.7[0]

Feel free to let me know if you still have problem.

[0] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=01d5a75370a60c3a8d691347ae6ebb2a9f8dc44a
> 
> pls let me know if any other info is needed to move forward with this….
> 
> 
> 
>> Wiadomość napisana przez Andy Yan <andy.yan@rock-chips.com> w dniu 25.12.2023, o godz. 02:40:
>>
>> Hi Piotr:
>>
>> On 12/24/23 20:37, Piotr Oniszczuk wrote:
>>> Hi *
>>> I have well working video decoding + rendering to drm planes on rk3568.
>>> On rk3566 however video playback gives mr green screen.
>>
>> Please confirm that the video data you rendering to drm is afbc or non-afbc?
>> Please also run command "cat /sys/kernel/debug/dri/0/state" and upload the output when you get green screen on rk3036
>> For the convenience of comparison, please also give the dri/0/state when you playback the same video on rk3568.
>>> Looking on 6.6.8 vop2 sources i see e.g. rk3568_vop_win_data[] is common for 3566 and 3568.
>>> I recall however Andy Yan (rockchip) said:
>>> "But take care that the vop on rk3566 has a special limitation: there are three windows(Cluster1/Esmart1/Smart1) that have a mirror lock, that means they can't be programmed framebuffer address independently , they can only share framebuffer address with Cluster0/Esmart0/Smart0”.
>>> I suspect my 3566 green video issue is somehow result of "too" common vop2 code for 3566 & 3568 variants.
>>> Isn't that 3566 should have dedicated variant code to deal with 3566 limitations mentioned by Andy?
>>> _______________________________________________
>>> Linux-rockchip mailing list
>>> Linux-rockchip@lists.infradead.org
>>> http://lists.infradead.org/mailman/listinfo/linux-rockchip
> 
> 
> _______________________________________________
> Linux-rockchip mailing list
> Linux-rockchip@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-rockchip

_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: vop2: 3566 vs 3568: green screen on 3566; on 3568 all ok...
  2023-12-26  1:41     ` Andy Yan
@ 2023-12-26 11:22       ` Piotr Oniszczuk
  2023-12-27  7:25         ` Kever Yang
  0 siblings, 1 reply; 7+ messages in thread
From: Piotr Oniszczuk @ 2023-12-26 11:22 UTC (permalink / raw
  To: Andy Yan; +Cc: Linux-rockchip

Andy,

pls see inline

> Wiadomość napisana przez Andy Yan <andy.yan@rock-chips.com> w dniu 26.12.2023, o godz. 02:41:
> 
> Hi Piotr,
> 
> On 12/25/23 20:14, Piotr Oniszczuk wrote:
>> Andy,
>> Thx for looking on this!
>> Before passing dri state logs - let me give some context why i’m asking here for help.
>> I’m developing 2 distros with goal to offer user convenient run of multimedia players (Kodi and MythTV): appliance and general distro.
>> Goal is out of box run of Kodi/MythTV in 2 rendering modes: EGL DAMBuf and DRM direct planes.
>> Currently i have out-of-box (no any SoC specific configs in Kodi/MythTV) for: rk3328/rk3399/H6/H313/H616/rpi3/rpi4.
>> Issues ia have are with: rk3566 and rk3568
>>  
> 
> Yes, it is a cool project, I run it on rk3566-box-demo for a while last year.

Many thx for kind words! 

> 
>> Vanilla 6.6.8 kernel on 3568 not offers me well working out-of-box Kodi/MythTV in DRM direct planes - but i was able to patch vop2 to get such out-of-box operation (pls see patch below).
>> I have also issue with 3566 - where i also developed patch (also see below) - but i’m not able to get 3566 fully working (EGL DMAbuf is ok; in DRM Planes GUI is ok, but video playback gives part screen green part black; green/black border is vibrantly changing at playback)
>> Logs:
> 
> 
> The dri/state dump already indicates the root case of the problem:
> 
> For rk3566/rk3568, the Cluster windows only support AFBC based RGB or YUV format,
> linear formats(such as NV12 you used for Cluster0-win0 on rk3566) are not supported, these
> linear formats are only support by Esmart(RGB/YUV),smart(RGB only) windows.
> 
> Compared with rk3568 you use, the NV12 is committed to Esmart1, and XRGB UI is
> committed to Esmart0.
> But on rk3566, there are only three windows/plane you can use, if you can only decoder
> linear NV12, it should be committed to Esmart0, and use Smart0 for UI.
> 
> 
> But when the vop2 drivers first lands, it mistakenly add linear formats(NV12/NV16) to
> Cluster windows format lists, this will mislead user space.
> 
> I have a patch series to fix this that already be merged in linux 6.7[0]
> 
> Feel free to let me know if you still have problem.
> 
> [0] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=01d5a75370a60c3a8d691347ae6ebb2a9f8dc44a

Perfect.

Above patch + vop2_win_data rk3568_vop_win_data[] reordering to:

Esmart1-win0
Esmart0-win0
Smart0-win0
Smart1-win0
Cluster0-win0
Cluster1-win0

makes Kodi and MythTV working out-of-box with EGL DMAbuf and DRM planes HW decoded video rendering :-)

So with your help we have single 6.6.8 kernel offering EGL DMAbuf and DRM planes HW decoded video rendering on rk3328/rk3399/rk3566/rk3568/H6/H313/H616/H618/rpi3/rpi4

once again: many thx

(p.s: it looks like only thing missing in 356x to be perfect open-source multimedia soc is: lack of rkvdec2 for hevc/vp9 hw decoding. Are there any plans from rock-chips to help foss to bring-up mainline kernel support for rkvdec2?)
   


_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: vop2: 3566 vs 3568: green screen on 3566; on 3568 all ok...
  2023-12-26 11:22       ` Piotr Oniszczuk
@ 2023-12-27  7:25         ` Kever Yang
  2023-12-27  7:36           ` Dragan Simic
  0 siblings, 1 reply; 7+ messages in thread
From: Kever Yang @ 2023-12-27  7:25 UTC (permalink / raw
  To: Piotr Oniszczuk, Andy Yan, 陈恒明; +Cc: Linux-rockchip

Hi Piortr,

On 2023/12/26 19:22, Piotr Oniszczuk wrote:
...
> Perfect.
>
> Above patch + vop2_win_data rk3568_vop_win_data[] reordering to:
>
> Esmart1-win0
> Esmart0-win0
> Smart0-win0
> Smart1-win0
> Cluster0-win0
> Cluster1-win0
>
> makes Kodi and MythTV working out-of-box with EGL DMAbuf and DRM planes HW decoded video rendering :-)
>
> So with your help we have single 6.6.8 kernel offering EGL DMAbuf and DRM planes HW decoded video rendering on rk3328/rk3399/rk3566/rk3568/H6/H313/H616/H618/rpi3/rpi4
>
> once again: many thx
>
> (p.s: it looks like only thing missing in 356x to be perfect open-source multimedia soc is: lack of rkvdec2 for hevc/vp9 hw decoding. Are there any plans from rock-chips to help foss to bring-up mainline kernel support for rkvdec2?)
Rockchip do not have plan to add rkvdec2 driver for mainline kernel, 
since rockchip vendor SDK does not use V4L2 based solution for video 
encoder/decoder.
For rkvdec, rockchip has already totally open source for both kernel 
driver and userspace mpp driver, people can understand how it works if 
anyone interested in it.
If developers would like to port the driver for mainline kernel, it's 
welcome and if you have any questions about the hardware during porting 
the driver, we can help to answer.

Thanks,
- Kever
>   
>
>
> _______________________________________________
> Linux-rockchip mailing list
> Linux-rockchip@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-rockchip

_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: vop2: 3566 vs 3568: green screen on 3566; on 3568 all ok...
  2023-12-27  7:25         ` Kever Yang
@ 2023-12-27  7:36           ` Dragan Simic
  0 siblings, 0 replies; 7+ messages in thread
From: Dragan Simic @ 2023-12-27  7:36 UTC (permalink / raw
  To: Kever Yang
  Cc: Piotr Oniszczuk, Andy Yan, 陈恒明,
	Linux-rockchip

On 2023-12-27 08:25, Kever Yang wrote:
> On 2023/12/26 19:22, Piotr Oniszczuk wrote:
> ...
>> Perfect.
>> 
>> Above patch + vop2_win_data rk3568_vop_win_data[] reordering to:
>> 
>> Esmart1-win0
>> Esmart0-win0
>> Smart0-win0
>> Smart1-win0
>> Cluster0-win0
>> Cluster1-win0
>> 
>> makes Kodi and MythTV working out-of-box with EGL DMAbuf and DRM 
>> planes HW decoded video rendering :-)
>> 
>> So with your help we have single 6.6.8 kernel offering EGL DMAbuf and 
>> DRM planes HW decoded video rendering on 
>> rk3328/rk3399/rk3566/rk3568/H6/H313/H616/H618/rpi3/rpi4
>> 
>> once again: many thx
>> 
>> (p.s: it looks like only thing missing in 356x to be perfect 
>> open-source multimedia soc is: lack of rkvdec2 for hevc/vp9 hw 
>> decoding. Are there any plans from rock-chips to help foss to bring-up 
>> mainline kernel support for rkvdec2?)
> 
> Rockchip do not have plan to add rkvdec2 driver for mainline kernel,
> since rockchip vendor SDK does not use V4L2 based solution for video
> encoder/decoder.
> For rkvdec, rockchip has already totally open source for both kernel
> driver and userspace mpp driver, people can understand how it works if
> anyone interested in it.

This is awesome.  Though, could you, please, send the links to the 
actual official source code repositories, simply because there seems to 
be quite a few of such repositories, which becomes confusing rather 
quickly?

> If developers would like to port the driver for mainline kernel, it's
> welcome and if you have any questions about the hardware during
> porting the driver, we can help to answer.

This is also awesome, thank you very much.

_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2023-12-27  7:36 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-24 12:37 vop2: 3566 vs 3568: green screen on 3566; on 3568 all ok Piotr Oniszczuk
2023-12-25  1:40 ` Andy Yan
2023-12-25 12:14   ` Piotr Oniszczuk
2023-12-26  1:41     ` Andy Yan
2023-12-26 11:22       ` Piotr Oniszczuk
2023-12-27  7:25         ` Kever Yang
2023-12-27  7:36           ` Dragan Simic

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.