aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bcm27xx/patches-5.10/950-0531-drm-vc4-hdmi-Signal-the-proper-colorimetry-info-in-t.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/bcm27xx/patches-5.10/950-0531-drm-vc4-hdmi-Signal-the-proper-colorimetry-info-in-t.patch')
-rw-r--r--target/linux/bcm27xx/patches-5.10/950-0531-drm-vc4-hdmi-Signal-the-proper-colorimetry-info-in-t.patch50
1 files changed, 50 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.10/950-0531-drm-vc4-hdmi-Signal-the-proper-colorimetry-info-in-t.patch b/target/linux/bcm27xx/patches-5.10/950-0531-drm-vc4-hdmi-Signal-the-proper-colorimetry-info-in-t.patch
new file mode 100644
index 0000000000..25ad2a2bb0
--- /dev/null
+++ b/target/linux/bcm27xx/patches-5.10/950-0531-drm-vc4-hdmi-Signal-the-proper-colorimetry-info-in-t.patch
@@ -0,0 +1,50 @@
+From c1e98dfad80bdb512cd04c9ed5d989a5f0f6b13d Mon Sep 17 00:00:00 2001
+From: Maxime Ripard <maxime@cerno.tech>
+Date: Fri, 9 Apr 2021 17:16:42 +0200
+Subject: [PATCH] drm/vc4: hdmi: Signal the proper colorimetry info in
+ the infoframe
+
+Our driver while supporting HDR didn't send the proper colorimetry info
+in the AVI infoframe.
+
+Let's add the property needed so that the userspace can let us know what
+the colorspace is supposed to be.
+
+Signed-off-by: Maxime Ripard <maxime@cerno.tech>
+---
+ drivers/gpu/drm/vc4/vc4_hdmi.c | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
++++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
+@@ -235,7 +235,8 @@ static int vc4_hdmi_connector_atomic_che
+ if (!crtc)
+ return 0;
+
+- if (!drm_connector_atomic_hdr_metadata_equal(old_state, new_state)) {
++ if (old_state->colorspace != new_state->colorspace ||
++ !drm_connector_atomic_hdr_metadata_equal(old_state, new_state)) {
+ struct drm_crtc_state *crtc_state;
+
+ crtc_state = drm_atomic_get_crtc_state(state, crtc);
+@@ -325,6 +326,11 @@ static int vc4_hdmi_connector_init(struc
+ if (ret)
+ return ret;
+
++ ret = drm_mode_create_hdmi_colorspace_property(connector);
++ if (ret)
++ return ret;
++
++ drm_connector_attach_colorspace_property(connector);
+ drm_connector_attach_tv_margin_properties(connector);
+ drm_connector_attach_max_bpc_property(connector, 8, 12);
+
+@@ -439,7 +445,7 @@ static void vc4_hdmi_set_avi_infoframe(s
+ vc4_encoder->limited_rgb_range ?
+ HDMI_QUANTIZATION_RANGE_LIMITED :
+ HDMI_QUANTIZATION_RANGE_FULL);
+-
++ drm_hdmi_avi_infoframe_colorspace(&frame.avi, cstate);
+ drm_hdmi_avi_infoframe_bars(&frame.avi, cstate);
+
+ vc4_hdmi_write_infoframe(encoder, &frame);