[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