47 lines
1.8 KiB
Diff
47 lines
1.8 KiB
Diff
From 4374e685d46122ac59ccdd201c3be785e7f3558d Mon Sep 17 00:00:00 2001
|
|
From: Yaroslav Bolyukin <iam@lach.pw>
|
|
Date: Sun, 30 Oct 2022 19:04:26 +0100
|
|
Subject: [PATCH 2/2] drm/amd: use fixed dsc bits-per-pixel from edid
|
|
|
|
VESA vendor header from DisplayID spec may contain fixed bit per pixel
|
|
rate, it should be respected by drm driver
|
|
|
|
Signed-off-by: Yaroslav Bolyukin <iam@lach.pw>
|
|
Signed-off-by: Lach <iam@lach.pw>
|
|
---
|
|
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 12 ++++++++++++
|
|
1 file changed, 12 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 ef026143dc1c..d068c6db91ce 100644
|
|
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
|
|
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
|
|
@@ -6430,6 +6430,11 @@ static void fill_stream_properties_from_drm_display_mode(
|
|
|
|
stream->output_color_space = get_output_color_space(timing_out, connector_state);
|
|
stream->content_type = get_output_content_type(connector_state);
|
|
+
|
|
+ /* DisplayID Type VII pass-through timings. */
|
|
+ if (mode_in->dsc_passthrough_timings_support && info->dp_dsc_bpp != 0) {
|
|
+ stream->timing.dsc_fixed_bits_per_pixel_x16 = info->dp_dsc_bpp;
|
|
+ }
|
|
}
|
|
|
|
static void fill_audio_info(struct audio_info *audio_info,
|
|
@@ -6976,6 +6981,13 @@ create_stream_for_sink(struct drm_connector *connector,
|
|
&mode, preferred_mode, scale);
|
|
|
|
preferred_refresh = drm_mode_vrefresh(preferred_mode);
|
|
+
|
|
+ /*
|
|
+ * HACK: In case of multiple supported modes, we should look at the matching mode to decide this flag.
|
|
+ * But what is matching mode, how should it be decided?
|
|
+ * Assuming that only preferred mode would have this flag.
|
|
+ */
|
|
+ mode.dsc_passthrough_timings_support = preferred_mode->dsc_passthrough_timings_support;
|
|
}
|
|
}
|
|
|
|
--
|
|
2.51.0
|