]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
drm/amd/display: revert Exit idle optimizations before HDCP execution
authorMartin Leung <martin.leung@amd.com>
Mon, 26 Feb 2024 18:20:08 +0000 (13:20 -0500)
committerRoxana Nicolescu <roxana.nicolescu@canonical.com>
Fri, 2 Aug 2024 14:27:23 +0000 (16:27 +0200)
BugLink: https://bugs.launchpad.net/bugs/2075154
commit f2703a3596a279b0be6eeed4c500bdbaa8dc3ce4 upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Manuel Diewald <manuel.diewald@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
drivers/gpu/drm/amd/display/modules/hdcp/hdcp.c
drivers/gpu/drm/amd/display/modules/inc/mod_hdcp.h

index 9a5a1726acaf89215a25198bcc91955614a114bb..5e01c6e24cbc8c0c881af655ebb1cb8ea2cd7e6e 100644 (file)
@@ -88,14 +88,6 @@ static uint8_t is_cp_desired_hdcp2(struct mod_hdcp *hdcp)
                        !hdcp->connection.is_hdcp2_revoked;
 }
 
-static void exit_idle_optimizations(struct mod_hdcp *hdcp)
-{
-       struct mod_hdcp_dm *dm = &hdcp->config.dm;
-
-       if (dm->funcs.exit_idle_optimizations)
-               dm->funcs.exit_idle_optimizations(dm->handle);
-}
-
 static enum mod_hdcp_status execution(struct mod_hdcp *hdcp,
                struct mod_hdcp_event_context *event_ctx,
                union mod_hdcp_transition_input *input)
@@ -551,8 +543,6 @@ enum mod_hdcp_status mod_hdcp_process_event(struct mod_hdcp *hdcp,
        memset(&event_ctx, 0, sizeof(struct mod_hdcp_event_context));
        event_ctx.event = event;
 
-       exit_idle_optimizations(hdcp);
-
        /* execute and transition */
        exec_status = execution(hdcp, &event_ctx, &hdcp->auth.trans_input);
        trans_status = transition(
index cdb17b093f2b84abb0767d441431f2957aab59c0..a4d344a4db9e1c40a8e75f1d8e1193c60425bd31 100644 (file)
@@ -156,13 +156,6 @@ struct mod_hdcp_ddc {
        } funcs;
 };
 
-struct mod_hdcp_dm {
-       void *handle;
-       struct {
-               void (*exit_idle_optimizations)(void *handle);
-       } funcs;
-};
-
 struct mod_hdcp_psp {
        void *handle;
        void *funcs;
@@ -279,7 +272,6 @@ struct mod_hdcp_display_query {
 struct mod_hdcp_config {
        struct mod_hdcp_psp psp;
        struct mod_hdcp_ddc ddc;
-       struct mod_hdcp_dm dm;
        uint8_t index;
 };