Hi Piotr:

On 3/31/22 22:53, Piotr Oniszczuk wrote:

Wiadomość napisana przez Andy Yan <andy.yan@rock-chips.com> w dniu 31.03.2022, o godz. 14:13:


Piotr:

What soc is on you board? rk3566 or rk3568?
it is rk3566 in x96-x6 tvbox


RK3566?  Maybe that is the problem.


plane[43]: Esmart1-win0
crtc=(null)
fb=0
crtc-pos=0x0+0+0
src-pos=0.000000x0.000000+0.000000+0.000000
rotation=1
normalized-zpos=1
color-encoding=ITU-R BT.601 YCbCr
color-range=YCbCr limited range

From your dri/state dump, Plane 43 is Esmart1.

Cluster1, Esmart1, Smart1 are special on rk3566, they are

mirror window of Cluster0, Esmart0, Esmart0. That means

the software can't program  a independent framebuffer for

these three windows. They can only share the fb address set

in Cluster0, Esmart0, Smart0.

For rk3566, we only use it for two VP display same content:

assign Cluster0,Esmart0,Smart0 to VP1 for primary display(MIPI),

assign Cluster1,Esmart1, Smart1 to VP0 for extend display(HDMI)

we handle this logic in Android hwc:

When a hdmi is connected, hwc will commit Esmart1 with Esmart0 with the

same fb and src buffer size, the dst can be different(by window scale)


I have code comment in my downstream kernel and explained this detail when Sascha start submit this serials.



I have a scripts[0]  use io[1] command to dump the VOP2 register you can use it dump the register configuration when you meet a display failure,

then send the dump to me, maybe I can figure out something.

[0]https://github.com/andyshrk/buildroot/blob/2022/board/andyshrk/rootfs_overlay/usr/bin/vop2_dump.sh

[1] https://github.com/andyshrk/io
Andy

Pls see https://pastebin.com/CHmu9s22


The dump is a little strange, I will check it in the later night.


I put dumps for following scenarios:

1.
-boot
-modetest -s 69@67:1920x1080 -> ok
-modetest -P 43@67:1920x1080@NV12 -> green screen


2.
-boot
-modetest -s 69@67:1920x1080 -> ok
-modetest -P 49@67:1920x1080@NV12 -> ok (but shifted horizontally by about 5% of screen width)
(setting palne#49 fixes plane #43. Here i set plane #49 but not yet setting #43)


3.
-boot
-modetest -s 69@67:1920x1080 -> ok
-modetest -P 49@67:1920x1080@NV12 -> ok (but shifted horizontally by about 5% of screen width)
-modetest -P 43@67:1920x1080@NV12 -> now ok (but shifted horizontally by about 5% of screen width)