dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
From: Gustavo Padovan <gustavo@padovan.org>
To: linux-samsung-soc@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org, inki.dae@samsung.com,
	jy0922.shim@samsung.com, tjakobi@math.uni-bielefeld.de,
	Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Subject: [PATCH v8 03/14] drm/exynos: atomic phase 1: use drm_plane_helper_disable()
Date: Wed, 27 May 2015 17:56:12 -0300	[thread overview]
Message-ID: <1432760183-4342-4-git-send-email-gustavo@padovan.org> (raw)
In-Reply-To: <1432760183-4342-1-git-send-email-gustavo@padovan.org>

From: Gustavo Padovan <gustavo.padovan@collabora.co.uk>

The atomic helper to disable planes also uses the optional
.atomic_disable() helper. The unique operation it does is calling
.win_disable()

Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com>
Tested-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
---
 drivers/gpu/drm/exynos/exynos_drm_plane.c | 32 ++++++++++++++++++-------------
 1 file changed, 19 insertions(+), 13 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_plane.c b/drivers/gpu/drm/exynos/exynos_drm_plane.c
index b218b7a..a0fdfe2 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_plane.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_plane.c
@@ -67,6 +67,9 @@ int exynos_check_plane(struct drm_plane *plane, struct drm_framebuffer *fb)
 	int nr;
 	int i;
 
+	if (!fb)
+		return 0;
+
 	nr = exynos_drm_fb_get_buf_cnt(fb);
 	for (i = 0; i < nr; i++) {
 		struct exynos_drm_gem_buf *buffer = exynos_drm_fb_buffer(fb, i);
@@ -162,21 +165,9 @@ exynos_update_plane(struct drm_plane *plane, struct drm_crtc *crtc,
 		exynos_crtc->ops->win_commit(exynos_crtc, exynos_plane->zpos);
 }
 
-static int exynos_disable_plane(struct drm_plane *plane)
-{
-	struct exynos_drm_plane *exynos_plane = to_exynos_plane(plane);
-	struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(plane->crtc);
-
-	if (exynos_crtc && exynos_crtc->ops->win_disable)
-		exynos_crtc->ops->win_disable(exynos_crtc,
-					      exynos_plane->zpos);
-
-	return 0;
-}
-
 static struct drm_plane_funcs exynos_plane_funcs = {
 	.update_plane	= drm_plane_helper_update,
-	.disable_plane	= exynos_disable_plane,
+	.disable_plane	= drm_plane_helper_disable,
 	.destroy	= drm_plane_cleanup,
 };
 
@@ -201,9 +192,24 @@ static void exynos_plane_atomic_update(struct drm_plane *plane,
 			    state->src_w >> 16, state->src_h >> 16);
 }
 
+static void exynos_plane_atomic_disable(struct drm_plane *plane,
+					struct drm_plane_state *old_state)
+{
+	struct exynos_drm_plane *exynos_plane = to_exynos_plane(plane);
+	struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(old_state->crtc);
+
+	if (!old_state->crtc)
+		return;
+
+	if (exynos_crtc->ops->win_disable)
+		exynos_crtc->ops->win_disable(exynos_crtc,
+					      exynos_plane->zpos);
+}
+
 static const struct drm_plane_helper_funcs plane_helper_funcs = {
 	.atomic_check = exynos_plane_atomic_check,
 	.atomic_update = exynos_plane_atomic_update,
+	.atomic_disable = exynos_plane_atomic_disable,
 };
 
 static void exynos_plane_attach_zpos_property(struct drm_plane *plane,
-- 
2.1.0

  parent reply	other threads:[~2015-05-27 20:56 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-27 20:56 [PATCH v8 00/14] drm/exynos: atomic modesetting support Gustavo Padovan
2015-05-27 20:56 ` [PATCH v8 01/14] drm/exynos: fix source data argument for plane Gustavo Padovan
2015-05-27 20:56 ` [PATCH v8 02/14] drm/exynos: atomic phase 1: use drm_plane_helper_update() Gustavo Padovan
2015-05-28  8:24   ` Joonyoung Shim
2015-05-27 20:56 ` Gustavo Padovan [this message]
2015-05-27 20:56 ` [PATCH v8 04/14] drm/exynos: atomic phase 1: add .mode_set_nofb() callback Gustavo Padovan
2015-05-28  8:24   ` Joonyoung Shim
2015-05-29  6:21     ` Joonyoung Shim
2015-05-27 20:56 ` [PATCH v8 05/14] drm/exynos: atomic phase 2: wire up state reset(), duplicate() and destroy() Gustavo Padovan
2015-05-27 20:56 ` [PATCH v8 06/14] drm/exynos: atomic phase 2: keep track of framebuffer pointer Gustavo Padovan
2015-05-27 20:56 ` [PATCH v8 07/14] drm/exynos: atomic phase 3: atomic updates of planes Gustavo Padovan
2015-05-27 20:56 ` [PATCH v8 08/14] drm/exynos: atomic phase 3: use atomic .set_config helper Gustavo Padovan
2015-05-28  8:25   ` Joonyoung Shim
2015-05-27 20:56 ` [PATCH v8 09/14] drm/exynos: atomic phase 3: convert page flips Gustavo Padovan
2015-05-27 20:56 ` [PATCH v8 10/14] drm/exynos: remove exported functions from exynos_drm_plane Gustavo Padovan
2015-05-27 20:56 ` [PATCH v8 11/14] drm/exynos: don't disable unused functions at init Gustavo Padovan
2015-05-27 20:56 ` [PATCH v8 12/14] drm/exynos: move exynos_drm_crtc_disable() Gustavo Padovan
2015-05-27 20:56 ` [PATCH v8 13/14] drm/exynos: atomic dpms support Gustavo Padovan
2015-05-27 20:56 ` [PATCH v8 14/14] drm/exynos: remove unnecessary calls to disable_plane() Gustavo Padovan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1432760183-4342-4-git-send-email-gustavo@padovan.org \
    --to=gustavo@padovan.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=gustavo.padovan@collabora.co.uk \
    --cc=inki.dae@samsung.com \
    --cc=jy0922.shim@samsung.com \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=tjakobi@math.uni-bielefeld.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).