aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.19.8/0870-drm-amd-display-Fix-unintialized-max_bpc-state-value.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/0870-drm-amd-display-Fix-unintialized-max_bpc-state-value.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.19.8/0870-drm-amd-display-Fix-unintialized-max_bpc-state-value.patch52
1 files changed, 52 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/0870-drm-amd-display-Fix-unintialized-max_bpc-state-value.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/0870-drm-amd-display-Fix-unintialized-max_bpc-state-value.patch
new file mode 100644
index 00000000..5804c9c0
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/0870-drm-amd-display-Fix-unintialized-max_bpc-state-value.patch
@@ -0,0 +1,52 @@
+From a280ea245d48d27cb3baed4bea324b5902d1c927 Mon Sep 17 00:00:00 2001
+From: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
+Date: Wed, 28 Nov 2018 16:17:50 -0500
+Subject: [PATCH 0870/2940] drm/amd/display: Fix unintialized max_bpc state
+ values
+
+[Why]
+If the "max bpc" isn't explicitly set in the atomic state then it
+have a value of 0. This has the correct behavior of limiting a panel
+to 8bpc in the case where the panel supports 8bpc. In the case of eDP
+panels this isn't a true assumption - there are panels that can only
+do 6bpc.
+
+Banding occurs for these displays.
+
+[How]
+Initialize the max_bpc when the connector resets to 8bpc. Also carry
+over the value when the state is duplicated.
+
+Bugzilla: https://bugs.freedesktop.org/108825
+Fixes: 307638884f72 ("drm/amd/display: Support amdgpu "max bpc" connector property")
+
+Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
+Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+index d3f9f8e8cc5c..e40784bc532b 100644
+--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+@@ -3245,6 +3245,7 @@ void amdgpu_dm_connector_funcs_reset(struct drm_connector *connector)
+ state->underscan_enable = false;
+ state->underscan_hborder = 0;
+ state->underscan_vborder = 0;
++ state->max_bpc = 8;
+
+ __drm_atomic_helper_connector_reset(connector, &state->base);
+ }
+@@ -3266,6 +3267,7 @@ amdgpu_dm_connector_atomic_duplicate_state(struct drm_connector *connector)
+
+ new_state->freesync_capable = state->freesync_capable;
+ new_state->abm_level = state->abm_level;
++ new_state->max_bpc = state->max_bpc;
+
+ return &new_state->base;
+ }
+--
+2.17.1
+