|
@@ -177,7 +177,7 @@ static void rockchip_crtc_wait_for_update(struct drm_crtc *crtc)
|
|
|
}
|
|
|
|
|
|
static void
|
|
|
-rockchip_atomic_wait_for_complete(struct drm_atomic_state *old_state)
|
|
|
+rockchip_atomic_wait_for_complete(struct drm_device *dev, struct drm_atomic_state *old_state)
|
|
|
{
|
|
|
struct drm_crtc_state *old_crtc_state;
|
|
|
struct drm_crtc *crtc;
|
|
@@ -193,6 +193,10 @@ rockchip_atomic_wait_for_complete(struct drm_atomic_state *old_state)
|
|
|
if (!crtc->state->active)
|
|
|
continue;
|
|
|
|
|
|
+ if (!drm_atomic_helper_framebuffer_changed(dev,
|
|
|
+ old_state, crtc))
|
|
|
+ continue;
|
|
|
+
|
|
|
ret = drm_crtc_vblank_get(crtc);
|
|
|
if (ret != 0)
|
|
|
continue;
|
|
@@ -240,7 +244,7 @@ rockchip_atomic_commit_complete(struct rockchip_atomic_commit *commit)
|
|
|
|
|
|
drm_atomic_helper_commit_planes(dev, state, true);
|
|
|
|
|
|
- rockchip_atomic_wait_for_complete(state);
|
|
|
+ rockchip_atomic_wait_for_complete(dev, state);
|
|
|
|
|
|
drm_atomic_helper_cleanup_planes(dev, state);
|
|
|
|