[PATCH] drm/exynos: remove unnecessary calls to disable_plane()

Gustavo Padovan gustavo at padovan.org
Mon Apr 13 10:35:11 PDT 2015


2015-04-13 Joonyoung Shim <jy0922.shim at samsung.com>:

> Hi,
> 
> On 04/11/2015 03:57 AM, Gustavo Padovan wrote:
> > From: Gustavo Padovan <gustavo.padovan at collabora.co.uk>
> > 
> > The planes are already disabled by the drm_atomic_helper_commit() code
> > so we don't need to disable the in these two places.
> > 
> > Signed-off-by: Gustavo Padovan <gustavo.padovan at collabora.co.uk>
> > ---
> >  drivers/gpu/drm/exynos/exynos_drm_crtc.c    | 11 -----------
> >  drivers/gpu/drm/exynos/exynos_drm_encoder.c |  8 --------
> >  2 files changed, 19 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/exynos/exynos_drm_crtc.c b/drivers/gpu/drm/exynos/exynos_drm_crtc.c
> > index 519c569..9bf25ff 100644
> > --- a/drivers/gpu/drm/exynos/exynos_drm_crtc.c
> > +++ b/drivers/gpu/drm/exynos/exynos_drm_crtc.c
> > @@ -47,8 +47,6 @@ static void exynos_drm_crtc_enable(struct drm_crtc *crtc)
> >  static void exynos_drm_crtc_disable(struct drm_crtc *crtc)
> >  {
> >  	struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc);
> > -	struct drm_plane *plane;
> > -	int ret;
> >  
> >  	if (!exynos_crtc->enabled)
> >  		return;
> > @@ -64,15 +62,6 @@ static void exynos_drm_crtc_disable(struct drm_crtc *crtc)
> >  		exynos_crtc->ops->dpms(exynos_crtc, DRM_MODE_DPMS_OFF);
> >  
> >  	exynos_crtc->enabled = false;
> > -
> > -	drm_for_each_legacy_plane(plane, &crtc->dev->mode_config.plane_list) {
> > -		if (plane->crtc != crtc)
> > -			continue;
> > -
> > -		ret = plane->funcs->disable_plane(plane);
> > -		if (ret)
> > -			DRM_ERROR("Failed to disable plane %d\n", ret);
> > -	}
> 
> If remove here disable codes, when crtc is disabled, enabled overlay
> planes may not be disabled.
> 
> E.g, user can remove fb of crtc via DRM_IOCTL_MODE_RMFB ioctl, then crtc
> is disabled but overlay planes no.

That not true anymore with atomic modesetting, the overlay planes are also
disabled, so we should let the atomic core solve this and remove these pieces
of code from here.

	Gustavo


More information about the dri-devel mailing list