[PATCH 2/2] drm/omapdrm: Move commit_modeset_enables() before commit_planes()
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Sat Jan 28 16:17:00 UTC 2017
Hi Jyri,
Thank you for the patch.
On Friday 27 Jan 2017 12:04:55 Jyri Sarha wrote:
> Move drm_atomic_helper_commit_modeset_enables() call to before
> drm_atomic_helper_commit_planes() call and have a
> omap_atomic_wait_for_completion() call after both.
>
> With the current dss dispc implementation we have to enable the new
> modeset before we can commit planes. The dispc ovl configuration
> relies on the video mode configuration been written into the HW when
> the ovl configuration is calculated.
>
> This approach is not ideal because after a mode change the plane
> update is executed only after the first vblank interrupt. The dispc
> implementation should be fixed so that it is able use uncommitted drm
> state information. information.
>
> Signed-off-by: Jyri Sarha <jsarha at ti.com>
> ---
> drivers/gpu/drm/omapdrm/omap_drv.c | 16 +++++++++++++++-
> 1 file changed, 15 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c
> b/drivers/gpu/drm/omapdrm/omap_drv.c index 5e55f1b..8c15735 100644
> --- a/drivers/gpu/drm/omapdrm/omap_drv.c
> +++ b/drivers/gpu/drm/omapdrm/omap_drv.c
> @@ -96,8 +96,22 @@ static void omap_atomic_complete(struct
> omap_atomic_state_commit *commit) dispc_runtime_get();
>
> drm_atomic_helper_commit_modeset_disables(dev, old_state);
> - drm_atomic_helper_commit_planes(dev, old_state, 0);
> +
> + /* With the current dss dispc implementation we have to enable
> + * the new modeset before we can commit planes. The dispc ovl
> + * configuration relies on the video mode configuration been
> + * written into the HW when the ovl configuration is
> + * calculated.
> + *
> + * This approach is not ideal because after a mode change the
> + * plane update is executed only after the first vblank
> + * interrupt. The dispc implementation should be fixed so that
> + * it is able use uncommitted drm state information.
Any chance you could fix the dispc implementation ? ;-) Otherwise, could you
rebase (and retest) this patch on top of "[PATCH 0/5] omapdrm: fences and
zpos" ?
> + */
> drm_atomic_helper_commit_modeset_enables(dev, old_state);
> + omap_atomic_wait_for_completion(dev, old_state);
> +
> + drm_atomic_helper_commit_planes(dev, old_state, 0);
>
> omap_atomic_wait_for_completion(dev, old_state);
--
Regards,
Laurent Pinchart
More information about the dri-devel
mailing list