diff options
Diffstat (limited to 'target/linux/layerscape/patches-5.4/805-display-0027-drm-imx-hdp-force-a-mode-set-when-colorspace-is-chan.patch')
-rw-r--r-- | target/linux/layerscape/patches-5.4/805-display-0027-drm-imx-hdp-force-a-mode-set-when-colorspace-is-chan.patch | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/target/linux/layerscape/patches-5.4/805-display-0027-drm-imx-hdp-force-a-mode-set-when-colorspace-is-chan.patch b/target/linux/layerscape/patches-5.4/805-display-0027-drm-imx-hdp-force-a-mode-set-when-colorspace-is-chan.patch new file mode 100644 index 0000000000..c63ae91683 --- /dev/null +++ b/target/linux/layerscape/patches-5.4/805-display-0027-drm-imx-hdp-force-a-mode-set-when-colorspace-is-chan.patch @@ -0,0 +1,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; |