]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
drm/i915: Extract intel_hdmi_limited_color_range()
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 18 Jul 2019 14:50:45 +0000 (17:50 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 20 Sep 2019 18:45:17 +0000 (21:45 +0300)
Pull the code for computing the limited color range
setting into a small helper. We'll add a bit more to it
later.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190718145053.25808-5-ville.syrjala@linux.intel.com
Reviewed-by: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com>
drivers/gpu/drm/i915/display/intel_hdmi.c

index 0082c462024622c5b92a31c0fe0a151eb1df04a6..b781e0d1962ef7f16a5b6c939401f530fef1113a 100644 (file)
@@ -2365,6 +2365,24 @@ static int intel_hdmi_compute_clock(struct intel_encoder *encoder,
        return 0;
 }
 
+static bool intel_hdmi_limited_color_range(const struct intel_crtc_state *crtc_state,
+                                          const struct drm_connector_state *conn_state)
+{
+       const struct intel_digital_connector_state *intel_conn_state =
+               to_intel_digital_connector_state(conn_state);
+       const struct drm_display_mode *adjusted_mode =
+               &crtc_state->base.adjusted_mode;
+
+       if (intel_conn_state->broadcast_rgb == INTEL_BROADCAST_RGB_AUTO) {
+               /* See CEA-861-E - 5.1 Default Encoding Parameters */
+               return crtc_state->has_hdmi_sink &&
+                       drm_default_rgb_quant_range(adjusted_mode) ==
+                       HDMI_QUANTIZATION_RANGE_LIMITED;
+       } else {
+               return intel_conn_state->broadcast_rgb == INTEL_BROADCAST_RGB_LIMITED;
+       }
+}
+
 int intel_hdmi_compute_config(struct intel_encoder *encoder,
                              struct intel_crtc_state *pipe_config,
                              struct drm_connector_state *conn_state)
@@ -2388,16 +2406,8 @@ int intel_hdmi_compute_config(struct intel_encoder *encoder,
        if (pipe_config->has_hdmi_sink)
                pipe_config->has_infoframe = true;
 
-       if (intel_conn_state->broadcast_rgb == INTEL_BROADCAST_RGB_AUTO) {
-               /* See CEA-861-E - 5.1 Default Encoding Parameters */
-               pipe_config->limited_color_range =
-                       pipe_config->has_hdmi_sink &&
-                       drm_default_rgb_quant_range(adjusted_mode) ==
-                       HDMI_QUANTIZATION_RANGE_LIMITED;
-       } else {
-               pipe_config->limited_color_range =
-                       intel_conn_state->broadcast_rgb == INTEL_BROADCAST_RGB_LIMITED;
-       }
+       pipe_config->limited_color_range =
+               intel_hdmi_limited_color_range(pipe_config, conn_state);
 
        if (adjusted_mode->flags & DRM_MODE_FLAG_DBLCLK)
                pipe_config->pixel_multiplier = 2;