aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2063-drm-amd-display-Use-current-connector-state-if-NULL-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2063-drm-amd-display-Use-current-connector-state-if-NULL-.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2063-drm-amd-display-Use-current-connector-state-if-NULL-.patch61
1 files changed, 61 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2063-drm-amd-display-Use-current-connector-state-if-NULL-.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2063-drm-amd-display-Use-current-connector-state-if-NULL-.patch
new file mode 100644
index 00000000..a8eb461d
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2063-drm-amd-display-Use-current-connector-state-if-NULL-.patch
@@ -0,0 +1,61 @@
+From 8e3c6723535b60b45bfd599077c1532d950fb7c1 Mon Sep 17 00:00:00 2001
+From: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
+Date: Wed, 5 Jun 2019 12:33:59 -0400
+Subject: [PATCH 2063/2940] drm/amd/display: Use current connector state if
+ NULL when checking bpc
+
+[Why]
+The old logic for checking which output depth to use relied on using
+the current connector state rather than the new proposed state. This
+was a problem when performing atomic commits since we weren't verifying
+it against the incoming max_requested_bpc.
+
+But switching this to only use the new state and not the current state
+breaks filtering modes - it'll always assume that the maximum bpc
+supported by the display is in use, which will cause certain modes
+like 1440p@144Hz to be filtered even when using 8bpc.
+
+[How]
+Still use the connector->state if we aren't passed an explicit state.
+This will respect the max_bpc the user currently has when filtering
+modes.
+
+Also remember to reset the default max_requested_bpc to 8 whenever
+connector reset is called to retain old behavior when using the new
+property.
+
+Change-Id: I35464fe1ace6f115a963fe36796415e328bf2f28
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110845
+Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
+Acked-by: Alex Deucher <alexander.deucher@amd.com>
+Reviewed-by: Harry Wentland <harry.wentland@amd.com>
+Signed-off-by: Chaudhary Amit Kumar <Chaudharyamit.Kumar@amd.com>
+---
+ drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+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 ad2eb220ff90..9f07b3b65980 100644
+--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+@@ -3058,6 +3058,8 @@ convert_color_depth_from_display_info(const struct drm_connector *connector,
+ struct dm_connector_state *dm_conn_state =
+ to_dm_connector_state(connector->state);
+ uint32_t bpc = connector->display_info.bpc;
++ if (!state)
++ state = connector->state;
+
+ if (state) {
+ bpc = state->max_bpc;
+@@ -3849,7 +3851,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;
++ state->base.max_requested_bpc = 8;
+
+ __drm_atomic_helper_connector_reset(connector, &state->base);
+ }
+--
+2.17.1
+