drm/i915: pipe config quirk infrastructure plus sdvo mode.flags fix
[deliverable/linux.git] / drivers / gpu / drm / i915 / intel_display.c
index 421b7e2ece3b88befea155ea845de63e18b90786..8d9e7c0e9e4bd3464662b0c1cf9ef090c48cb6a6 100644 (file)
@@ -8091,6 +8091,9 @@ intel_pipe_config_compare(struct drm_device *dev,
                return false; \
        }
 
+#define PIPE_CONF_QUIRK(quirk) \
+       ((current_config->quirks | pipe_config->quirks) & (quirk))
+
        PIPE_CONF_CHECK_I(cpu_transcoder);
 
        PIPE_CONF_CHECK_I(has_pch_encoder);
@@ -8121,14 +8124,16 @@ intel_pipe_config_compare(struct drm_device *dev,
        PIPE_CONF_CHECK_FLAGS(adjusted_mode.flags,
                              DRM_MODE_FLAG_INTERLACE);
 
-       PIPE_CONF_CHECK_FLAGS(adjusted_mode.flags,
-                             DRM_MODE_FLAG_PHSYNC);
-       PIPE_CONF_CHECK_FLAGS(adjusted_mode.flags,
-                             DRM_MODE_FLAG_NHSYNC);
-       PIPE_CONF_CHECK_FLAGS(adjusted_mode.flags,
-                             DRM_MODE_FLAG_PVSYNC);
-       PIPE_CONF_CHECK_FLAGS(adjusted_mode.flags,
-                             DRM_MODE_FLAG_NVSYNC);
+       if (!PIPE_CONF_QUIRK(PIPE_CONFIG_QUIRK_MODE_SYNC_FLAGS)) {
+               PIPE_CONF_CHECK_FLAGS(adjusted_mode.flags,
+                                     DRM_MODE_FLAG_PHSYNC);
+               PIPE_CONF_CHECK_FLAGS(adjusted_mode.flags,
+                                     DRM_MODE_FLAG_NHSYNC);
+               PIPE_CONF_CHECK_FLAGS(adjusted_mode.flags,
+                                     DRM_MODE_FLAG_PVSYNC);
+               PIPE_CONF_CHECK_FLAGS(adjusted_mode.flags,
+                                     DRM_MODE_FLAG_NVSYNC);
+       }
 
        PIPE_CONF_CHECK_I(requested_mode.hdisplay);
        PIPE_CONF_CHECK_I(requested_mode.vdisplay);
@@ -8145,6 +8150,7 @@ intel_pipe_config_compare(struct drm_device *dev,
 
 #undef PIPE_CONF_CHECK_I
 #undef PIPE_CONF_CHECK_FLAGS
+#undef PIPE_CONF_QUIRK
 
        return true;
 }
This page took 0.028163 seconds and 5 git commands to generate.