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

drm/amd/display: revert Exit idle optimizations before HDCP execution

why and how:
causes black screen on PNP on DCN 3.5

This reverts commit f30a3bea92bd ("drm/amd/display: Exit idle
optimizations before HDCP execution")

Cc: Mario Limonciello <mario.limonciello@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Acked-by: Wayne Lin <wayne.lin@amd.com>
Signed-off-by: Martin Leung <martin.leung@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Martin Leung and committed by
Alex Deucher
f2703a35 f30a3bea

-18
-10
drivers/gpu/drm/amd/display/modules/hdcp/hdcp.c
··· 88 88 !hdcp->connection.is_hdcp2_revoked; 89 89 } 90 90 91 - static void exit_idle_optimizations(struct mod_hdcp *hdcp) 92 - { 93 - struct mod_hdcp_dm *dm = &hdcp->config.dm; 94 - 95 - if (dm->funcs.exit_idle_optimizations) 96 - dm->funcs.exit_idle_optimizations(dm->handle); 97 - } 98 - 99 91 static enum mod_hdcp_status execution(struct mod_hdcp *hdcp, 100 92 struct mod_hdcp_event_context *event_ctx, 101 93 union mod_hdcp_transition_input *input) ··· 542 550 memset(output, 0, sizeof(struct mod_hdcp_output)); 543 551 memset(&event_ctx, 0, sizeof(struct mod_hdcp_event_context)); 544 552 event_ctx.event = event; 545 - 546 - exit_idle_optimizations(hdcp); 547 553 548 554 /* execute and transition */ 549 555 exec_status = execution(hdcp, &event_ctx, &hdcp->auth.trans_input);
-8
drivers/gpu/drm/amd/display/modules/inc/mod_hdcp.h
··· 156 156 } funcs; 157 157 }; 158 158 159 - struct mod_hdcp_dm { 160 - void *handle; 161 - struct { 162 - void (*exit_idle_optimizations)(void *handle); 163 - } funcs; 164 - }; 165 - 166 159 struct mod_hdcp_psp { 167 160 void *handle; 168 161 void *funcs; ··· 272 279 struct mod_hdcp_config { 273 280 struct mod_hdcp_psp psp; 274 281 struct mod_hdcp_ddc ddc; 275 - struct mod_hdcp_dm dm; 276 282 uint8_t index; 277 283 }; 278 284