[PATCH] drm/exynos: remove unnecessary calls to disable_plane()
Joonyoung Shim
jy0922.shim at samsung.com
Sun Apr 12 23:32:08 PDT 2015
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.
Thanks.
> }
>
> static bool
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_encoder.c b/drivers/gpu/drm/exynos/exynos_drm_encoder.c
> index 0648ba4..7b89fd5 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_encoder.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_encoder.c
> @@ -81,17 +81,9 @@ static void exynos_drm_encoder_disable(struct drm_encoder *encoder)
> {
> struct exynos_drm_encoder *exynos_encoder = to_exynos_encoder(encoder);
> struct exynos_drm_display *display = exynos_encoder->display;
> - struct drm_plane *plane;
> - struct drm_device *dev = encoder->dev;
>
> if (display->ops->dpms)
> display->ops->dpms(display, DRM_MODE_DPMS_OFF);
> -
> - /* all planes connected to this encoder should be also disabled. */
> - drm_for_each_legacy_plane(plane, &dev->mode_config.plane_list) {
> - if (plane->crtc && (plane->crtc == encoder->crtc))
> - plane->funcs->disable_plane(plane);
> - }
> }
>
> static struct drm_encoder_helper_funcs exynos_encoder_helper_funcs = {
>
More information about the dri-devel
mailing list