diff options
Diffstat (limited to 'target/linux/bcm27xx/patches-5.15/950-0624-drm-vc4-hdmi-Add-full-range-RGB-helper.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.15/950-0624-drm-vc4-hdmi-Add-full-range-RGB-helper.patch | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.15/950-0624-drm-vc4-hdmi-Add-full-range-RGB-helper.patch b/target/linux/bcm27xx/patches-5.15/950-0624-drm-vc4-hdmi-Add-full-range-RGB-helper.patch new file mode 100644 index 0000000000..5f606d39b2 --- /dev/null +++ b/target/linux/bcm27xx/patches-5.15/950-0624-drm-vc4-hdmi-Add-full-range-RGB-helper.patch @@ -0,0 +1,43 @@ +From 4809cf80fdd964c413045e550fb137a18dc98ba2 Mon Sep 17 00:00:00 2001 +From: Maxime Ripard <maxime@cerno.tech> +Date: Tue, 12 Jan 2021 15:55:07 +0100 +Subject: [PATCH] drm/vc4: hdmi: Add full range RGB helper + +We're going to need to tell whether we want to run with a full or +limited range RGB output in multiple places in the code, so let's create +a helper that will return whether we need with full range or not. + +Acked-by: Thomas Zimmermann <tzimmermann@suse.de> +Signed-off-by: Maxime Ripard <maxime@cerno.tech> +--- + drivers/gpu/drm/vc4/vc4_hdmi.c | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +--- a/drivers/gpu/drm/vc4/vc4_hdmi.c ++++ b/drivers/gpu/drm/vc4/vc4_hdmi.c +@@ -107,6 +107,15 @@ static bool vc4_hdmi_mode_needs_scrambli + 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; +@@ -1115,8 +1124,7 @@ static void vc4_hdmi_encoder_pre_crtc_en + + 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); + |