OSDN Git Service

drm/rockchip: Use for_each_oldnew_plane_in_state in vop_crtc_atomic_flush
authorMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Wed, 12 Jul 2017 08:13:37 +0000 (10:13 +0200)
committerMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Thu, 13 Jul 2017 07:53:43 +0000 (09:53 +0200)
for_each_obj_in_state is about to be removed, so use the new atomic
iterator macros.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Mark Yao <mark.yao@rock-chips.com>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-rockchip@lists.infradead.org
Link: http://patchwork.freedesktop.org/patch/msgid/20170712081344.25495-10-maarten.lankhorst@linux.intel.com
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Acked-by: Mark Yao <mark.yao@rock-chips.com>
drivers/gpu/drm/rockchip/rockchip_drm_vop.c

index ee876a9..f90088b 100644 (file)
@@ -1029,7 +1029,7 @@ static void vop_crtc_atomic_flush(struct drm_crtc *crtc,
                                  struct drm_crtc_state *old_crtc_state)
 {
        struct drm_atomic_state *old_state = old_crtc_state->state;
-       struct drm_plane_state *old_plane_state;
+       struct drm_plane_state *old_plane_state, *new_plane_state;
        struct vop *vop = to_vop(crtc);
        struct drm_plane *plane;
        int i;
@@ -1060,11 +1060,12 @@ static void vop_crtc_atomic_flush(struct drm_crtc *crtc,
        }
        spin_unlock_irq(&crtc->dev->event_lock);
 
-       for_each_plane_in_state(old_state, plane, old_plane_state, i) {
+       for_each_oldnew_plane_in_state(old_state, plane, old_plane_state,
+                                      new_plane_state, i) {
                if (!old_plane_state->fb)
                        continue;
 
-               if (old_plane_state->fb == plane->state->fb)
+               if (old_plane_state->fb == new_plane_state->fb)
                        continue;
 
                drm_framebuffer_reference(old_plane_state->fb);