CHROMIUM: drm/evdi: Do not reuse crtc.mode_changed to signal painter client needs full modeset

Although both variables are similar their purpose is different.
This fixes few issues where crtc.mode_changed was modified in
evdi_atomic_check when crtc_state->allow_modeset was false

BUG=None
TEST=Build and test on various affected systems

Change-Id: I55801d0a6136685946c23ec79ec68eca6da9039c
Signed-off-by: Łukasz Spintzyk <lukasz.spintzyk@synaptics.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/3450237
Reviewed-by: Dominik Behr <dbehr@chromium.org>
diff --git a/drivers/gpu/drm/evdi/evdi_modeset.c b/drivers/gpu/drm/evdi/evdi_modeset.c
index fea77e3..8f60767 100644
--- a/drivers/gpu/drm/evdi/evdi_modeset.c
+++ b/drivers/gpu/drm/evdi/evdi_modeset.c
@@ -52,6 +52,8 @@
 	struct drm_crtc_state *state = crtc->state;
 	struct evdi_device *evdi = crtc->dev->dev_private;
 	unsigned long flags;
+	bool notify_mode_changed;
+	bool notify_dpms;
 
 	if (state->event) {
 		spin_lock_irqsave(&crtc->dev->event_lock, flags);
@@ -59,10 +61,15 @@
 		state->event = NULL;
 		spin_unlock_irqrestore(&crtc->dev->event_lock, flags);
 	}
-	if (state->mode_changed && state->active)
+	notify_mode_changed = state->active &&
+		(state->mode_changed || evdi_painter_needs_full_modeset(evdi));
+	notify_dpms = state->active_changed ||
+		      evdi_painter_needs_full_modeset(evdi);
+
+	if (notify_mode_changed)
 		evdi_painter_mode_changed_notify(evdi, &state->adjusted_mode);
 
-	if (state->active_changed)
+	if (notify_dpms)
 		evdi_painter_dpms_notify(evdi,
 			state->active ? DRM_MODE_DPMS_ON : DRM_MODE_DPMS_OFF);
 
@@ -345,30 +352,11 @@
 	return 0;
 }
 
-int evdi_atomic_check(struct drm_device *dev,
-			    struct drm_atomic_state *state) {
-	struct drm_crtc *crtc;
-	struct drm_crtc_state *crtc_state;
-	int i;
-	struct evdi_device *evdi = dev->dev_private;
-
-
-	if (evdi_painter_needs_full_modeset(evdi)) {
-		for_each_crtc_in_state(state, crtc, crtc_state, i) {
-			crtc_state->active_changed = true;
-			crtc_state->mode_changed = true;
-		}
-	}
-
-	return drm_atomic_helper_check(dev, state);
-}
-
-
 static const struct drm_mode_config_funcs evdi_mode_funcs = {
 	.fb_create = evdi_fb_user_fb_create,
 	.output_poll_changed = NULL,
 	.atomic_commit = drm_atomic_helper_commit,
-	.atomic_check = evdi_atomic_check
+	.atomic_check = drm_atomic_helper_check
 };
 
 void evdi_modeset_init(struct drm_device *dev)