drm/i915/sdvo: Use pipe_config->limited_color_range consistently
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 24 Apr 2014 21:54:48 +0000 (23:54 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 16 May 2014 09:57:53 +0000 (11:57 +0200)
We in the pre_enable hook we should only rely on the pipe config and
not on some other state set through properties or detect functions.

Reviewed-by: Naresh Kumar Kachhi <naresh.kumar.kachhi@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_sdvo.c

index 2bf09e8eb5ed439259728b7b5a4f249aa14f0fa6..e43bf558f0cdba5d0d3d5e9fffe3d39583d96dae 100644 (file)
@@ -1159,14 +1159,13 @@ static bool intel_sdvo_compute_config(struct intel_encoder *encoder,
                 * bit per color mode. */
                if (intel_sdvo->has_hdmi_monitor &&
                    drm_match_cea_mode(adjusted_mode) > 1)
-                       intel_sdvo->color_range = HDMI_COLOR_RANGE_16_235;
-               else
-                       intel_sdvo->color_range = 0;
+                       pipe_config->limited_color_range = true;
+       } else {
+               if (intel_sdvo->has_hdmi_monitor &&
+                   intel_sdvo->color_range == HDMI_COLOR_RANGE_16_235)
+                       pipe_config->limited_color_range = true;
        }
 
-       if (intel_sdvo->color_range)
-               pipe_config->limited_color_range = true;
-
        /* Clock computation needs to happen after pixel multiplier. */
        if (intel_sdvo->is_tv)
                i9xx_adjust_sdvo_tv_clock(pipe_config);
@@ -1258,8 +1257,8 @@ static void intel_sdvo_pre_enable(struct intel_encoder *intel_encoder)
                /* The real mode polarity is set by the SDVO commands, using
                 * struct intel_sdvo_dtd. */
                sdvox = SDVO_VSYNC_ACTIVE_HIGH | SDVO_HSYNC_ACTIVE_HIGH;
-               if (!HAS_PCH_SPLIT(dev) && intel_sdvo->is_hdmi)
-                       sdvox |= intel_sdvo->color_range;
+               if (!HAS_PCH_SPLIT(dev) && crtc->config.limited_color_range)
+                       sdvox |= HDMI_COLOR_RANGE_16_235;
                if (INTEL_INFO(dev)->gen < 5)
                        sdvox |= SDVO_BORDER_ENABLE;
        } else {