Hi Piotr:
On 3/31/22 22:53, Piotr Oniszczuk wrote:
Wiadomość napisana przez Andy Yanandy.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_overla...
Andy
The dump is a little strange, I will check it in the later night.
I put dumps for following scenarios:
-boot -modetest -s 69@67:1920x1080 -> ok -modetest -P 43@67:1920x1080@NV12 -> green screen
-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)
-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)