[PATCH] drm/amd/display: Use current connector state if NULL when checking bpc

Nicholas Kazlauskas nicholas.kazlauskas at amd.com
Wed Jun 5 16:33:59 UTC 2019

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 at 144Hz to be filtered even when using 8bpc.

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

Also remember to reset the default max_requested_bpc to 8 whenever
connector reset is called to retain old behavior when using the new

Cc: Harry Wentland <harry.wentland at amd.com>
Cc: Leo Li <sunpeng.li at amd.com>
Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas at amd.com>
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 4 ++++
 1 file changed, 4 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 a698c8f272ed..f627c17a1039 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -3046,6 +3046,9 @@ convert_color_depth_from_display_info(const struct drm_connector *connector,
 	uint32_t bpc = connector->display_info.bpc;
+	if (!state)
+		state = connector->state;
 	if (state) {
 		bpc = state->max_bpc;
 		/* Round down to the nearest even number. */
@@ -3820,6 +3823,7 @@ void amdgpu_dm_connector_funcs_reset(struct drm_connector *connector)
 		state->underscan_enable = false;
 		state->underscan_hborder = 0;
 		state->underscan_vborder = 0;
+		state->base.max_requested_bpc = 8;
 		__drm_atomic_helper_connector_reset(connector, &state->base);

More information about the amd-gfx mailing list