[PATCH] drm/atomic-helper: Pimp docs with recommendations for rpm drivers
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Tue Sep 8 06:00:46 PDT 2015
Hi Daniel,
Thank you for the patch.
On Tuesday 08 September 2015 13:52:45 Daniel Vetter wrote:
> Requested by Laurent.
>
> Note that this uses the new markdown support which will only land in
> kernel 4.4 (for the code snippet).
>
> v2: A few spelling fixes I spotted myself.
>
> Cc: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> Reviewed-by: Thierry Reding <treding at nvidia.com> (v1 on irc)
> Signed-off-by: Daniel Vetter <daniel.vetter at intel.com>
> ---
> drivers/gpu/drm/drm_atomic_helper.c | 22 ++++++++++++++++++++++
> 1 file changed, 22 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c
> b/drivers/gpu/drm/drm_atomic_helper.c index 12c25c54309f..bd23b4dc7f43
> 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -993,6 +993,22 @@ EXPORT_SYMBOL(drm_atomic_helper_wait_for_vblanks);
> * object. This can still fail when e.g. the framebuffer reservation fails.
> * For now this doesn't implement asynchronous commits.
> *
> + * Note that right now this function does not support async commits, and
> + * hence driver writers must implement their own version for now. Also note
> + * that the default ordering of how the various stages are called is to
> + * match the legacy modeset helper library closest. One peculiarity of that
> + * is that it doesn't mesh well with runtime pm at all.
> + *
> + * For drivers supporting runtime PM the recommended sequence is
> + *
> + * drm_atomic_helper_commit_modeset_disables(dev, state);
> + *
> + * drm_atomic_helper_commit_modeset_enables(dev, state);
> + *
> + * drm_atomic_helper_commit_planes(dev, state, true);
> + *
> + * See the kerneldoc entries for these three functions for more details.
> + *
> * RETURNS
> * Zero for success or -errno.
> */
> @@ -1168,6 +1184,12 @@ bool plane_crtc_active(struct drm_plane_state *state)
> * Note that this function does all plane updates across all CRTCs in one
> * step. If the hardware can't support this approach look at
> * drm_atomic_helper_commit_planes_on_crtc() instead.
> + *
> + * Note that for drivers supporting runtime PM, or which are otherwise
> + * unhappy if their plane update hooks get called on CRTCs which are off,
> + * it is highly recommended to set @active_only to true. Setting
> + * @active_only to false as the default implementation in
> + * drm_atomic_helper_commit() does is just done to most closely match
> + * the behaviour of the legacy helpers.
How about
"Plane parameters can be updated by applications while the associated CRTC is
disabled. The DRM/KMS core will store the parameters in the plane state, which
will be available to the driver when the CRTC is turned on. As a result most
drivers don't need to be immediately notified of plane updates for a disabled
CRTC. Unless otherwise needed, drivers are advised to set the @active_only
parameters to true in order not to receive plane update notifications related
to a disabled CRTC."
> */
> void drm_atomic_helper_commit_planes(struct drm_device *dev,
> struct drm_atomic_state *old_state,
--
Regards,
Laurent Pinchart
More information about the dri-devel
mailing list