Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e9f494d3 authored by Vincent Abriou's avatar Vincent Abriou
Browse files

drm/sti: do not post GDP command if no update



Do not process update requests with unmodified parameters.

This typically happens when the driver is called with legacy
(non-atomic) IOCTL : in that case atomic_update() is called multiple
times with the same parameters.

Signed-off-by: default avatarVincent Abriou <vincent.abriou@st.com>
parent c5649ee4
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -708,6 +708,21 @@ static void sti_gdp_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;
	}

	if (!gdp->vtg) {
		struct sti_compositor *compo = dev_get_drvdata(gdp->dev);
		struct sti_mixer *mixer = to_sti_mixer(crtc);