Re: [PATCH v9 00/23] drm/rockchip: RK356x VOP2 support
From: Sascha Hauer <s.hauer@pengutronix.de>
Date: 2022-03-30 09:46:36
Also in:
dri-devel, linux-arm-kernel, linux-rockchip
On Wed, Mar 30, 2022 at 10:41:56AM +0200, piotro.oniszczuk@google.com wrote:
quoted
Wiadomość napisana przez Sascha Hauer [off-list ref] w dniu 30.03.2022, o godz. 09:28:quoted
You can easily reproduce with modetest utility: modetest -P 43@67:1920x1080@NV12This only sets the overlay, but how did you get something on the screen initially?
Let me rephrase this: The above sets a plane, but it doesn't set a mode on the crtc. When my system boots up then the output of modetest looks like this: Encoders: id crtc type possible crtcs possible clones 68 0 TMDS 0x00000001 0x00000001 Connectors: id encoder status name size (mm) modes encoders 69 0 connected HDMI-A-1 530x300 9 68 CRTCs: id fb pos size 67 0 (0,0) (0x0) #0 nan 0 0 0 0 0 0 0 0 0 flags: ; type: No mode is set on the CRTC and the encoder/connector/crtc are not bound to each other, consequently the screen is in standby. "modetest -P 43@67:1920x1080@NV12" doesn't change this, still no mode set. Hence my question: How did you set a mode initially?
quoted
I'm not sure that above command only sets plane. On other SoCs i’m testing it gives expected results: diagonal colored stripes. There is single exception: rk356x with vop2 - where screen is green unless i „fix/enable” by playing with plane #69quoted
I did with "modetest -s 69@67:1920x1080 -d" and with this it works as expected, I can't reproduce any green screen issue here.I see you are using plane #69. Why not #43?
I used "modetest -s 69@67:1920x1080 -d" to set a mode. The '69' is the connector id, not a plane.
Is plane #43 working ok for you?
Yes.
I’m using plane #43 because: application (player) - at start - queries all planes and selects first plane offering format being within offered formats by provider (video decoder; NV12 from rk356x hantro video decoder). pls look on app log regarding planes discovery and election: https://pastebin.com/edAhbcvU Now - looking what VOP2 reports: https://pastebin.com/8ujkaV9n is see first plane accepting NV12 is #43 - so my app is electing this plane to use for displaying video. This strategy works well for all 13 platforms i’m supporting (only 13 i have in my testbed). If this approach is - by Yours VOP2 patches goal - is not supported - then OK. I understand this :-) But - if You want to support DRM features in the same way like other SOC are doing (and working well with KODI/MythTV/mpv/etc) - then i think: 1\ DRM plane #43 not supports NV12 - but code wrongly reports NV12 format is supported, or 2\ DRM plane #43 is supported - but code has bug resulting with green screen.
plane #43 should support NV12 and it seems to work fine here. I believe you that there's a problem, but I can't reproduce it here and I might need further assistence to reproduce it. Sascha -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |