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;
        }
        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);