[PATCH] drm/amd/display: limit high pixel clock modes on ST/CZ

S, Shirish Shirish.S at amd.com
Mon Nov 26 06:36:30 UTC 2018


[Why]
ST/CZ (dce110) advertises modes such as 4k at 60Hz etc.,
that it cannot handle correctly, hence  resulting in
several issues like flickering, black lines/flashes and so on.

[How]
These modes are basically high pixel clock ones, hence
limit the same to be advertised to avoid bad user experiences

Signed-off-by: Shirish S <shirish.s at amd.com>
Suggested-by: Harry Wentland <harry.wentland at amd.com>
---
 .../gpu/drm/amd/display/dc/dce110/dce110_timing_generator.c    | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_timing_generator.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_timing_generator.c
index 1b2fe0d..1b8fe99 100644
--- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_timing_generator.c
+++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_timing_generator.c
@@ -1121,6 +1121,16 @@ bool dce110_timing_generator_validate_timing(
 	if (!timing)
 		return false;
 
+	/* Limit all modes that have a high pixel clock
+	 * which seems to be problematic on dce110
+	 * These include: 4k at 60Hz, 1080p at 144Hz,1440p at 120Hz
+	 * based on the below formula:
+	 * refresh rate = pixel clock / (htotal * vtotal)
+	 */
+	if (timing->pix_clk_khz > 300000)
+		return false;
+
+
 	hsync_offset = timing->h_border_right + timing->h_front_porch;
 	h_sync_start = timing->h_addressable + hsync_offset;
 
-- 
2.7.4



More information about the amd-gfx mailing list