From: Laurent Pinchart <laurent.pinch...@ideasonboard.com>

The planes don't care about DPMS states, don't propagate it
unnecessarily to the plane functions.

Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
 drivers/gpu/drm/omapdrm/omap_crtc.c  |  2 +-
 drivers/gpu/drm/omapdrm/omap_drv.h   |  2 +-
 drivers/gpu/drm/omapdrm/omap_plane.c | 16 +++++++---------
 3 files changed, 9 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c 
b/drivers/gpu/drm/omapdrm/omap_crtc.c
index 7570db59a9ea..c7d3e1eec6cb 100644
--- a/drivers/gpu/drm/omapdrm/omap_crtc.c
+++ b/drivers/gpu/drm/omapdrm/omap_crtc.c
@@ -220,7 +220,7 @@ static void omap_crtc_dpms(struct drm_crtc *crtc, int mode)
                for (i = 0; i < priv->num_planes; i++) {
                        struct drm_plane *plane = priv->planes[i];
                        if (plane->crtc == crtc)
-                               WARN_ON(omap_plane_dpms(plane, mode));
+                               WARN_ON(omap_plane_set_enable(plane, enabled));
                }
        }
 }
diff --git a/drivers/gpu/drm/omapdrm/omap_drv.h 
b/drivers/gpu/drm/omapdrm/omap_drv.h
index f38ffd14ff06..fa6becc4d1be 100644
--- a/drivers/gpu/drm/omapdrm/omap_drv.h
+++ b/drivers/gpu/drm/omapdrm/omap_drv.h
@@ -161,7 +161,7 @@ void omap_crtc_flush(struct drm_crtc *crtc);

 struct drm_plane *omap_plane_init(struct drm_device *dev,
                int id, enum drm_plane_type type);
-int omap_plane_dpms(struct drm_plane *plane, int mode);
+int omap_plane_set_enable(struct drm_plane *plane, bool enable);
 int omap_plane_mode_set(struct drm_plane *plane,
                struct drm_crtc *crtc, struct drm_framebuffer *fb,
                int crtc_x, int crtc_y,
diff --git a/drivers/gpu/drm/omapdrm/omap_plane.c 
b/drivers/gpu/drm/omapdrm/omap_plane.c
index 32df3e783128..34f5cca5a6c5 100644
--- a/drivers/gpu/drm/omapdrm/omap_plane.c
+++ b/drivers/gpu/drm/omapdrm/omap_plane.c
@@ -257,8 +257,9 @@ static int omap_plane_update(struct drm_plane *plane,
 static int omap_plane_disable(struct drm_plane *plane)
 {
        struct omap_plane *omap_plane = to_omap_plane(plane);
+
        omap_plane->win.rotation = BIT(DRM_ROTATE_0);
-       return omap_plane_dpms(plane, DRM_MODE_DPMS_OFF);
+       return omap_plane_set_enable(plane, false);
 }

 static void omap_plane_destroy(struct drm_plane *plane)
@@ -277,18 +278,15 @@ static void omap_plane_destroy(struct drm_plane *plane)
        kfree(omap_plane);
 }

-int omap_plane_dpms(struct drm_plane *plane, int mode)
+int omap_plane_set_enable(struct drm_plane *plane, bool enable)
 {
        struct omap_plane *omap_plane = to_omap_plane(plane);
-       bool enabled = (mode == DRM_MODE_DPMS_ON);
-       int ret = 0;

-       if (enabled != omap_plane->enabled) {
-               omap_plane->enabled = enabled;
-               ret = apply(plane);
-       }
+       if (enable == omap_plane->enabled)
+               return 0;

-       return ret;
+       omap_plane->enabled = enable;
+       return apply(plane);
 }

 /* helper to install properties which are common to planes and crtcs */
-- 
2.3.3

Reply via email to