aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-5.4/805-display-0027-drm-imx-hdp-force-a-mode-set-when-colorspace-is-chan.patch
blob: c63ae916838e7f2dc326222046a15e60bb9462d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
From da02a33c186db04986166659caafb0c2da5bf7f0 Mon Sep 17 00:00:00 2001
From: Laurentiu Palcu <laurentiu.palcu@nxp.com>
Date: Fri, 15 Nov 2019 10:00:55 +0200
Subject: [PATCH] drm/imx/hdp: force a mode set when colorspace is changed

If the userspace changes the connector Colorspace property, we need to force a
modeset, so that the entire pipeline is properly configured.

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@nxp.com>
---
 drivers/gpu/drm/bridge/cadence/cdns-hdmi-core.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

--- a/drivers/gpu/drm/bridge/cadence/cdns-hdmi-core.c
+++ b/drivers/gpu/drm/bridge/cadence/cdns-hdmi-core.c
@@ -314,14 +314,16 @@ static int cdns_hdmi_connector_atomic_ch
 	struct drm_crtc_state *new_crtc_state;
 
 	if (!blob_equal(new_con_state->hdr_output_metadata,
-			old_con_state->hdr_output_metadata)) {
+			old_con_state->hdr_output_metadata) ||
+	    new_con_state->colorspace != old_con_state->colorspace) {
 		new_crtc_state = drm_atomic_get_crtc_state(state, crtc);
 		if (IS_ERR(new_crtc_state))
 			return PTR_ERR(new_crtc_state);
 
 		new_crtc_state->mode_changed =
 			!new_con_state->hdr_output_metadata ||
-			!old_con_state->hdr_output_metadata;
+			!old_con_state->hdr_output_metadata ||
+			new_con_state->colorspace != old_con_state->colorspace;
 	}
 
 	return 0;