You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openwrt/target/linux/layerscape/patches-5.4/805-display-0027-drm-imx-hd...

35 lines
1.3 KiB
Diff

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;