drm/vc4: hdmi: Add full range RGB helper
[linux-2.6-microblaze.git] / drivers / gpu / drm / vc4 / vc4_hdmi.c
index be39e55..7966e3b 100644 (file)
@@ -104,6 +104,15 @@ static bool vc4_hdmi_mode_needs_scrambling(const struct drm_display_mode *mode)
        return (mode->clock * 1000) > HDMI_14_MAX_TMDS_CLK;
 }
 
+static bool vc4_hdmi_is_full_range_rgb(struct vc4_hdmi *vc4_hdmi,
+                                      const struct drm_display_mode *mode)
+{
+       struct vc4_hdmi_encoder *vc4_encoder = &vc4_hdmi->encoder;
+
+       return !vc4_encoder->hdmi_monitor ||
+               drm_default_rgb_quant_range(mode) == HDMI_QUANTIZATION_RANGE_FULL;
+}
+
 static int vc4_hdmi_debugfs_regs(struct seq_file *m, void *unused)
 {
        struct drm_info_node *node = (struct drm_info_node *)m->private;
@@ -1119,8 +1128,7 @@ static void vc4_hdmi_encoder_pre_crtc_enable(struct drm_encoder *encoder,
 
        mutex_lock(&vc4_hdmi->mutex);
 
-       if (vc4_encoder->hdmi_monitor &&
-           drm_default_rgb_quant_range(mode) == HDMI_QUANTIZATION_RANGE_LIMITED) {
+       if (!vc4_hdmi_is_full_range_rgb(vc4_hdmi, mode)) {
                if (vc4_hdmi->variant->csc_setup)
                        vc4_hdmi->variant->csc_setup(vc4_hdmi, true);