[PATCH 2/2] drm/exynos: solve plane on/off disharmory issue
Gustavo Padovan
gustavo at padovan.org
Tue Feb 3 05:28:54 PST 2015
Hi Joonyoung,
2015-01-29 Joonyoung Shim <jy0922.shim at samsung.com>:
> The exynos_update_plane functions can be called from set_plane as well
> as set_crtc and pageflip. Currently the plane displayed by set_plane
> isn't called exynos_plane_on function and if plane is disabled, it calls
> exynos_plane_off, so it causes disharmory of plane on/off.
>
> This is caused from commit e7cd81111041 ("drm/exynos: Don't touch DPMS
> when updating overlay planes").
>
> Make .update_plane function called only by set_plane and call
> exynos_plane_on in it.
>
> Signed-off-by: Joonyoung Shim <jy0922.shim at samsung.com>
> ---
> drivers/gpu/drm/exynos/exynos_drm_crtc.c | 4 ++--
> drivers/gpu/drm/exynos/exynos_drm_plane.c | 21 ++++++++++++++++++++-
> drivers/gpu/drm/exynos/exynos_drm_plane.h | 2 +-
> 3 files changed, 23 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_crtc.c b/drivers/gpu/drm/exynos/exynos_drm_crtc.c
> index dac8f90..2765f7e 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_crtc.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_crtc.c
> @@ -129,7 +129,7 @@ static int exynos_drm_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y,
> crtc_w = fb->width - x;
> crtc_h = fb->height - y;
>
> - return exynos_update_plane(crtc->primary, crtc, fb, 0, 0,
> + return exynos_plane_update(crtc->primary, crtc, fb, 0, 0,
> crtc_w, crtc_h, x, y, crtc_w, crtc_h);
This patch goes in the opposite direction of the clean up to support atomic
modesetting on exynos (see my patches for atomic modesetting here[0]) In my
latest series there was an effort to unify all places we update a plane under
exynos_update_plane() and this is a essential step for atomic modesetting.
My proposal to solve this issue would just be calling exynos_plane_dpms()
on exynos_drm_crtc_mode_set_base() and leave the rest as is. This would fix
the disharmory of plane on/off. I'll send a patch for this in a bit.
[0] https://git.kernel.org/cgit/linux/kernel/git/padovan/drm-exynos.git/log/?h=atomic-next-2
Gustavo
More information about the dri-devel
mailing list