Thread (151 messages) 151 messages, 9 authors, 2022-08-30

Re: [PATCH v1 00/35] drm: Analog TV Improvements

From: Noralf Trønnes <hidden>
Date: 2022-08-25 19:36:51
Also in: dri-devel, linux-amlogic, linux-sunxi, lkml


Den 25.08.2022 18.21, skrev Maxime Ripard:
On Mon, Aug 22, 2022 at 03:21:29PM +0200, Noralf Trønnes wrote:
quoted

Den 22.08.2022 09.48, skrev Maxime Ripard:
quoted
Hi,

On Sun, Aug 21, 2022 at 06:33:12PM +0200, Noralf Trønnes wrote:
quoted
Den 29.07.2022 18.34, skrev Maxime Ripard:
quoted
Hi,

Here's a series aiming at improving the command line named modes support,
and more importantly how we deal with all the analog TV variants.

The named modes support were initially introduced to allow to specify the
analog TV mode to be used.

However, this was causing multiple issues:

  * The mode name parsed on the command line was passed directly to the
    driver, which had to figure out which mode it was suppose to match;

  * Figuring that out wasn't really easy, since the video= argument or what
    the userspace might not even have a name in the first place, but
    instead could have passed a mode with the same timings;

  * The fallback to matching on the timings was mostly working as long as
    we were supporting one 525 lines (most likely NSTC) and one 625 lines
    (PAL), but couldn't differentiate between two modes with the same
    timings (NTSC vs PAL-M vs NSTC-J for example); 

  * There was also some overlap with the tv mode property registered by 
    drm_mode_create_tv_properties(), but named modes weren't interacting
    with that property at all.

  * Even though that property was generic, its possible values were
    specific to each drivers, which made some generic support difficult.

Thus, I chose to tackle in multiple steps:

  * A new TV norm property was introduced, with generic values, each driver
    reporting through a bitmask what standard it supports to the userspace;

  * This option was added to the command line parsing code to be able to
    specify it on the kernel command line, and new atomic_check and reset
    helpers were created to integrate properly into atomic KMS;

  * The named mode parsing code is now creating a proper display mode for
    the given named mode, and the TV standard will thus be part of the
    connector state;

  * Two drivers were converted and tested for now (vc4 and sun4i), with
    some backward compatibility code to translate the old TV mode to the
    new TV mode;

Unit tests were created along the way. Nouveau, ch7006 and gud are
currently broken for now since I expect that work to be reworked fairly
significantly. I'm also not entirely sure about how to migrate GUD to the
new property.

Let me know what you think,
Maxime
I don't know if it's related to this patchset or not, but I do get this:

pi@pi4t:~ $ sudo dmesg -C && sudo modprobe -r vc4 && sudo modprobe vc4
&& dmesg
[  430.066211] Console: switching to colour dummy device 80x30
[  431.294788] vc4-drm gpu: bound fe400000.hvs (ops vc4_hvs_ops [vc4])
[  431.295115] vc4-drm gpu: bound fec13000.vec (ops vc4_vec_ops [vc4])
[  431.295467] vc4-drm gpu: bound fe004000.txp (ops vc4_txp_ops [vc4])
[  431.295804] vc4-drm gpu: bound fec12000.pixelvalve (ops vc4_crtc_ops
[vc4])
[  431.298895] [drm] Initialized vc4 0.0.0 20140616 for gpu on minor 0
[  441.444250] vc4-drm gpu: [drm] *ERROR* [CRTC:68:crtc-1] flip_done
timed out
[  441.446529] Console: switching to colour frame buffer device 90x30
[  451.684321] vc4-drm gpu: [drm] *ERROR* flip_done timed out
[  451.684347] vc4-drm gpu: [drm] *ERROR* [CRTC:68:crtc-1] commit wait
timed out
[  461.924255] vc4-drm gpu: [drm] *ERROR* flip_done timed out
[  461.924281] vc4-drm gpu: [drm] *ERROR* [CONNECTOR:45:Composite-1]
commit wait timed out
[  472.164006] vc4-drm gpu: [drm] *ERROR* flip_done timed out
[  472.164031] vc4-drm gpu: [drm] *ERROR* [PLANE:61:plane-1] commit wait
timed out
[  482.403877] vc4-drm gpu: [drm] *ERROR* flip_done timed out
[  482.403903] vc4-drm gpu: [drm] *ERROR* Timed out waiting for commit
[  492.643799] vc4-drm gpu: [drm] *ERROR* [CRTC:68:crtc-1] flip_done
timed out
[  492.647073] vc4-drm gpu: [drm] fb0: vc4drmfb frame buffer device
Module unloading/reloading has been janky for a while.

I've fixed it up recently but it doesn't surprise me that there's still
some situation that won't work. Is it on a Pi3?
It's a Pi4.
With which kernel? I just tested it on last next and it seems to work ok
there. I've fixed it recently though, so it's only in drm-misc-next and
linux-next at the moment.
I'm on a week old drm-misc-next.

What's your setup so I can try that.

This is mine:
https://gist.github.com/notro/41c59d77c3022dc6d931d4f9547c4ea6

I can't see anything that should differ significantly from what you
could have done. Only maybe that I use the latest firmware and perhaps
you've got a 64-bit kernel.

Noralf.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help