Merge drm/drm-next into drm-intel-next-queued
[sfrench/cifs-2.6.git] / drivers / gpu / drm / drm_atomic_state_helper.c
index 97ab26679b969bd42beeb84a77198695cbb25155..46dc264a248bf6d273b03c4b8db2a69b17539419 100644 (file)
@@ -129,6 +129,10 @@ void __drm_atomic_helper_crtc_duplicate_state(struct drm_crtc *crtc,
        state->commit = NULL;
        state->event = NULL;
        state->pageflip_flags = 0;
+
+       /* Self refresh should be canceled when a new update is available */
+       state->active = drm_atomic_crtc_effectively_active(state);
+       state->self_refresh_active = false;
 }
 EXPORT_SYMBOL(__drm_atomic_helper_crtc_duplicate_state);
 
@@ -375,6 +379,24 @@ void drm_atomic_helper_connector_reset(struct drm_connector *connector)
 }
 EXPORT_SYMBOL(drm_atomic_helper_connector_reset);
 
+/**
+ * drm_atomic_helper_connector_tv_reset - Resets TV connector properties
+ * @connector: DRM connector
+ *
+ * Resets the TV-related properties attached to a connector.
+ */
+void drm_atomic_helper_connector_tv_reset(struct drm_connector *connector)
+{
+       struct drm_cmdline_mode *cmdline = &connector->cmdline_mode;
+       struct drm_connector_state *state = connector->state;
+
+       state->tv.margins.left = cmdline->tv_margins.left;
+       state->tv.margins.right = cmdline->tv_margins.right;
+       state->tv.margins.top = cmdline->tv_margins.top;
+       state->tv.margins.bottom = cmdline->tv_margins.bottom;
+}
+EXPORT_SYMBOL(drm_atomic_helper_connector_tv_reset);
+
 /**
  * __drm_atomic_helper_connector_duplicate_state - copy atomic connector state
  * @connector: connector object