drm/msm/mdp5: nuke mdp5_plane_complete_flip()
authorRob Clark <robdclark@gmail.com>
Mon, 31 Oct 2016 23:38:15 +0000 (19:38 -0400)
committerRob Clark <robdclark@gmail.com>
Sun, 27 Nov 2016 16:23:12 +0000 (11:23 -0500)
We can do this all from mdp5_plane_complete_commit(), so simplify things
a bit and drop mdp5_plane_complete_flip().

Signed-off-by: Rob Clark <robdclark@gmail.com>
drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c
drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.h
drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c

index f766ac4dd8b65323fbb6ea4ab95ed53225f26aa3..12a26fa63267c173f882e306c519bbde7a6896d6 100644 (file)
@@ -135,7 +135,6 @@ static void complete_flip(struct drm_crtc *crtc, struct drm_file *file)
        struct mdp5_crtc *mdp5_crtc = to_mdp5_crtc(crtc);
        struct drm_device *dev = crtc->dev;
        struct drm_pending_vblank_event *event;
-       struct drm_plane *plane;
        unsigned long flags;
 
        spin_lock_irqsave(&dev->event_lock, flags);
@@ -153,10 +152,6 @@ static void complete_flip(struct drm_crtc *crtc, struct drm_file *file)
        }
        spin_unlock_irqrestore(&dev->event_lock, flags);
 
-       drm_atomic_crtc_for_each_plane(plane, crtc) {
-               mdp5_plane_complete_flip(plane);
-       }
-
        if (mdp5_crtc->ctl && !crtc->state->enable) {
                /* set STAGE_UNUSED for all layers */
                mdp5_ctl_blend(mdp5_crtc->ctl, NULL, 0, 0);
index 92a6db1d1598966f828fbd5480e28f9e55326450..a2b60b18f5020755fca1708ff979cdb2732eb947 100644 (file)
@@ -208,7 +208,6 @@ int mdp5_irq_domain_init(struct mdp5_kms *mdp5_kms);
 void mdp5_irq_domain_fini(struct mdp5_kms *mdp5_kms);
 
 uint32_t mdp5_plane_get_flush(struct drm_plane *plane);
-void mdp5_plane_complete_flip(struct drm_plane *plane);
 void mdp5_plane_complete_commit(struct drm_plane *plane,
        struct drm_plane_state *state);
 enum mdp5_pipe mdp5_plane_pipe(struct drm_plane *plane);
index ba4ebfad69da80e17e799721593298f28a81cd00..0e6336eb07281bce2314b9c639af137b2992c2aa 100644 (file)
@@ -852,20 +852,6 @@ static int mdp5_plane_mode_set(struct drm_plane *plane,
        return ret;
 }
 
-void mdp5_plane_complete_flip(struct drm_plane *plane)
-{
-       struct mdp5_kms *mdp5_kms = get_kms(plane);
-       struct mdp5_plane *mdp5_plane = to_mdp5_plane(plane);
-       enum mdp5_pipe pipe = mdp5_plane->pipe;
-
-       DBG("%s: complete flip", mdp5_plane->name);
-
-       if (mdp5_kms->smp)
-               mdp5_smp_commit(mdp5_kms->smp, pipe);
-
-       to_mdp5_plane_state(plane->state)->pending = false;
-}
-
 enum mdp5_pipe mdp5_plane_pipe(struct drm_plane *plane)
 {
        struct mdp5_plane *mdp5_plane = to_mdp5_plane(plane);
@@ -887,10 +873,17 @@ void mdp5_plane_complete_commit(struct drm_plane *plane,
        struct mdp5_plane *mdp5_plane = to_mdp5_plane(plane);
        enum mdp5_pipe pipe = mdp5_plane->pipe;
 
-       if (!plane_enabled(plane->state) && mdp5_kms->smp) {
-               DBG("%s: free SMP", mdp5_plane->name);
-               mdp5_smp_release(mdp5_kms->smp, pipe);
+       if (mdp5_kms->smp) {
+               if (plane_enabled(plane->state)) {
+                       DBG("%s: complete flip", mdp5_plane->name);
+                       mdp5_smp_commit(mdp5_kms->smp, pipe);
+               } else {
+                       DBG("%s: free SMP", mdp5_plane->name);
+                       mdp5_smp_release(mdp5_kms->smp, pipe);
+               }
        }
+
+       to_mdp5_plane_state(plane->state)->pending = false;
 }
 
 /* initialize plane */