Re: [PATCH v9 00/23] drm/rockchip: RK356x VOP2 support

Sascha Hauer
2022-03-30T09:46:06Z

On Wed, Mar 30, 2022 at 10:41:56AM +0200, piotro.oniszczuk@google.com wrote:
>
>
> > Wiadomość napisana przez Sascha Hauer <s.hauer@pengutronix.de> w dniu 30.03.2022, o godz. 09:28:
> >
> >>
> >> You can easily reproduce with modetest utility:
> >>
> >> modetest -P 43@67:1920x1080@NV12
> >
> > This 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?

> >
>
> 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 #69
>
> > 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 |