From bbde1e4eb96ee9c2717b1eee266f1964e3887d8c Mon Sep 17 00:00:00 2001 From: Inki Dae Date: Fri, 24 Aug 2012 10:54:12 -0700 Subject: [PATCH] --- yaml --- r: 331765 b: refs/heads/master c: bcf4cef94294992f7cd11d5a90fa58b0eae6c795 h: refs/heads/master i: 331763: 9dee537e2eabbad0f6de385826b66de81ba2f527 v: v3 --- [refs] | 2 +- trunk/drivers/gpu/drm/exynos/exynos_drm_encoder.c | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index eaafe93620bf..3f6a05a9e0fc 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1b85a0715f4615f953733c4afa6ec59cd0e73b52 +refs/heads/master: bcf4cef94294992f7cd11d5a90fa58b0eae6c795 diff --git a/trunk/drivers/gpu/drm/exynos/exynos_drm_encoder.c b/trunk/drivers/gpu/drm/exynos/exynos_drm_encoder.c index 92f9acf77b7f..96a10c38cd72 100644 --- a/trunk/drivers/gpu/drm/exynos/exynos_drm_encoder.c +++ b/trunk/drivers/gpu/drm/exynos/exynos_drm_encoder.c @@ -214,12 +214,27 @@ static void exynos_drm_encoder_commit(struct drm_encoder *encoder) manager_ops->commit(manager->dev); } +static void exynos_drm_encoder_disable(struct drm_encoder *encoder) +{ + struct drm_plane *plane; + struct drm_device *dev = encoder->dev; + + exynos_drm_encoder_dpms(encoder, DRM_MODE_DPMS_OFF); + + /* all planes connected to this encoder should be also disabled. */ + list_for_each_entry(plane, &dev->mode_config.plane_list, head) { + if (plane->crtc == encoder->crtc) + plane->funcs->disable_plane(plane); + } +} + static struct drm_encoder_helper_funcs exynos_encoder_helper_funcs = { .dpms = exynos_drm_encoder_dpms, .mode_fixup = exynos_drm_encoder_mode_fixup, .mode_set = exynos_drm_encoder_mode_set, .prepare = exynos_drm_encoder_prepare, .commit = exynos_drm_encoder_commit, + .disable = exynos_drm_encoder_disable, }; static void exynos_drm_encoder_destroy(struct drm_encoder *encoder)