Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/amd/display: Disable SubVP if test pattern is enabled

[Why]
Enabling DPG causes HUBP to stay in blank constantly. If DPG is enabled
while an MCLK switch is taking place with SubVP, it will cause the MCLK
to never complete. This is because SubVP MCLK switch relies a HUBP
VLine interrupt, which will never occur when HUBP is constantly in
blank.

[How]
Disable SubVP when test pattern is enabled.

Reviewed-by: Alvin Lee <alvin.lee2@amd.com>
Reviewed-by: Nevenko Stupar <nevenko.stupar@amd.com>
Acked-by: Tom Chung <chiahsuan.chung@amd.com>
Signed-off-by: George Shen <george.shen@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

George Shen and committed by
Alex Deucher
9af4377f 051d9007

+14 -1
+14 -1
drivers/gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c
··· 1383 1383 } 1384 1384 } 1385 1385 1386 + static bool is_test_pattern_enabled( 1387 + struct dc_state *context) 1388 + { 1389 + int i; 1390 + 1391 + for (i = 0; i < context->stream_count; i++) { 1392 + if (context->streams[i]->test_pattern.type != DP_TEST_PATTERN_VIDEO_MODE) 1393 + return true; 1394 + } 1395 + 1396 + return false; 1397 + } 1398 + 1386 1399 static void dcn32_full_validate_bw_helper(struct dc *dc, 1387 1400 struct dc_state *context, 1388 1401 display_e2e_pipe_params_st *pipes, ··· 1439 1426 * 5. (Config doesn't support MCLK in VACTIVE/VBLANK || dc->debug.force_subvp_mclk_switch) 1440 1427 */ 1441 1428 if (!dc->debug.force_disable_subvp && !dc->caps.dmub_caps.gecc_enable && dcn32_all_pipes_have_stream_and_plane(dc, context) && 1442 - !dcn32_mpo_in_use(context) && !dcn32_any_surfaces_rotated(dc, context) && 1429 + !dcn32_mpo_in_use(context) && !dcn32_any_surfaces_rotated(dc, context) && !is_test_pattern_enabled(context) && 1443 1430 (*vlevel == context->bw_ctx.dml.soc.num_states || 1444 1431 vba->DRAMClockChangeSupport[*vlevel][vba->maxMpcComb] == dm_dram_clock_change_unsupported || 1445 1432 dc->debug.force_subvp_mclk_switch)) {