|
@@ -1117,6 +1117,21 @@ static void sti_hqvdp_atomic_update(struct drm_plane *drm_plane,
|
|
|
if (!crtc || !fb)
|
|
|
return;
|
|
|
|
|
|
+ if ((oldstate->fb == state->fb) &&
|
|
|
+ (oldstate->crtc_x == state->crtc_x) &&
|
|
|
+ (oldstate->crtc_y == state->crtc_y) &&
|
|
|
+ (oldstate->crtc_w == state->crtc_w) &&
|
|
|
+ (oldstate->crtc_h == state->crtc_h) &&
|
|
|
+ (oldstate->src_x == state->src_x) &&
|
|
|
+ (oldstate->src_y == state->src_y) &&
|
|
|
+ (oldstate->src_w == state->src_w) &&
|
|
|
+ (oldstate->src_h == state->src_h)) {
|
|
|
+ /* No change since last update, do not post cmd */
|
|
|
+ DRM_DEBUG_DRIVER("No change, not posting cmd\n");
|
|
|
+ plane->status = STI_PLANE_UPDATED;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
mode = &crtc->mode;
|
|
|
dst_x = state->crtc_x;
|
|
|
dst_y = state->crtc_y;
|