]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
drm: omapdrm: inline omap_plane_setup into update/disable
authorTomi Valkeinen <tomi.valkeinen@ti.com>
Fri, 29 May 2015 08:05:37 +0000 (11:05 +0300)
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Fri, 12 Jun 2015 19:52:51 +0000 (22:52 +0300)
At the moment we have omap_plane_setup() function which handles both
enabling (and configuring) and disabling the plane. With atomic
modesetting we have separate hooks for plane enable/config and disable.

This patch moves the code from omap_plane_setup() to
omap_plane_atomic_update() and omap_plane_atomic_disable().

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
drivers/gpu/drm/omapdrm/omap_plane.c

index a8e617f9f2afe387284d0488bdf0c61398ac36ba..b13fb2fd4a9a1d157d8abed3f627862bdc33394a 100644 (file)
@@ -58,7 +58,22 @@ to_omap_plane_state(struct drm_plane_state *state)
        return container_of(state, struct omap_plane_state, base);
 }
 
-static void omap_plane_setup(struct drm_plane *plane)
+static int omap_plane_prepare_fb(struct drm_plane *plane,
+                                struct drm_framebuffer *fb,
+                                const struct drm_plane_state *new_state)
+{
+       return omap_framebuffer_pin(fb);
+}
+
+static void omap_plane_cleanup_fb(struct drm_plane *plane,
+                                 struct drm_framebuffer *fb,
+                                 const struct drm_plane_state *old_state)
+{
+       omap_framebuffer_unpin(fb);
+}
+
+static void omap_plane_atomic_update(struct drm_plane *plane,
+                                    struct drm_plane_state *old_state)
 {
        struct omap_plane *omap_plane = to_omap_plane(plane);
        struct drm_plane_state *state = plane->state;
@@ -69,11 +84,6 @@ static void omap_plane_setup(struct drm_plane *plane)
 
        DBG("%s, crtc=%p fb=%p", omap_plane->name, state->crtc, state->fb);
 
-       if (!state->crtc) {
-               dispc_ovl_enable(omap_plane->id, false);
-               return;
-       }
-
        memset(&info, 0, sizeof(info));
        info.rotation_type = OMAP_DSS_ROT_DMA;
        info.rotation = OMAP_DSS_ROT_0;
@@ -128,26 +138,6 @@ static void omap_plane_setup(struct drm_plane *plane)
        dispc_ovl_enable(omap_plane->id, true);
 }
 
-static int omap_plane_prepare_fb(struct drm_plane *plane,
-                                struct drm_framebuffer *fb,
-                                const struct drm_plane_state *new_state)
-{
-       return omap_framebuffer_pin(fb);
-}
-
-static void omap_plane_cleanup_fb(struct drm_plane *plane,
-                                 struct drm_framebuffer *fb,
-                                 const struct drm_plane_state *old_state)
-{
-       omap_framebuffer_unpin(fb);
-}
-
-static void omap_plane_atomic_update(struct drm_plane *plane,
-                                    struct drm_plane_state *old_state)
-{
-       omap_plane_setup(plane);
-}
-
 static void omap_plane_atomic_disable(struct drm_plane *plane,
                                      struct drm_plane_state *old_state)
 {
@@ -158,7 +148,7 @@ static void omap_plane_atomic_disable(struct drm_plane *plane,
        omap_state->zorder = plane->type == DRM_PLANE_TYPE_PRIMARY
                           ? 0 : omap_plane->id;
 
-       omap_plane_setup(plane);
+       dispc_ovl_enable(omap_plane->id, false);
 }
 
 static const struct drm_plane_helper_funcs omap_plane_helper_funcs = {