Re: [PATCH 0/5] Introduce new mode validation callbacks

From: Daniel Vetter
Date: Mon May 08 2017 - 03:58:59 EST


On Thu, May 04, 2017 at 03:11:37PM +0100, Jose Abreu wrote:
> This series is a follow up from the discussion at [1]. We start by
> introducing crtc->mode_valid(), encoder->mode_valid() and
> bridge->mode_valid() callbacks which will be used in followup
> patches.
>
> Next, at 2/5 we modify the connector probe helper so that only modes
> which are supported by a given encoder+crtc combination are probbed.
>
> At 3/5 a helper function is introduced that calls all mode_valid()
> from a set of bridges.
>
> At 4/5 we call all the mode_valid() callbacks for a given pipeline
> so that the mode is validated. This is done before calling mode_fixup().
>
> Finally, at 5/5 we use the new crtc->mode_valid() callback in arcpgu
> and remove the atomic_check() callback.
>
> [1] https://patchwork.kernel.org/patch/9702233/
>
> Jose Abreu (5):
> drm: Add crtc/encoder/bridge->mode_valid() callbacks
> drm: Use new mode_valid() helpers in connector probe helper
> drm: Introduce drm_bridge_mode_valid()
> drm: Use mode_valid() in atomic modeset
> drm: arc: Use crtc->mode_valid() callback
>
> Cc: Carlos Palminha <palminha@xxxxxxxxxxxx>
> Cc: Alexey Brodkin <abrodkin@xxxxxxxxxxxx>
> Cc: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
> Cc: Daniel Vetter <daniel.vetter@xxxxxxxx>
> Cc: Dave Airlie <airlied@xxxxxxxx>
> Cc: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
> Cc: Archit Taneja <architt@xxxxxxxxxxxxxx>

Looks nice. A few small things from Ville and me, but with those addressed
this looks all ready for merging and seems like a good improvement to the
modeset framework.

Ok, one more patch at the end is needed: We need to review and upate the
kernel-doc for all the existing hooks, and add cross-links between
mode_valid and atomic_check respectively mode_fixup.

Some more drivers using this would be sweet too, but not a blocker.

Thanks, Daniel
>
> drivers/gpu/drm/arc/arcpgu_crtc.c | 39 ++++++++------
> drivers/gpu/drm/drm_atomic_helper.c | 92 ++++++++++++++++++++++++++++++--
> drivers/gpu/drm/drm_bridge.c | 33 ++++++++++++
> drivers/gpu/drm/drm_probe_helper.c | 71 ++++++++++++++++++++++--
> include/drm/drm_bridge.h | 22 ++++++++
> include/drm/drm_modeset_helper_vtables.h | 40 ++++++++++++++
> 6 files changed, 275 insertions(+), 22 deletions(-)
>
> --
> 1.9.1
>
>

--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch