mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 10:31:46 +09:00
drm/amd/display: revert Exit idle optimizations before HDCP execution
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>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
5efe0b5deb
commit
d04943bb69
@@ -88,14 +88,6 @@ static uint8_t is_cp_desired_hdcp2(struct mod_hdcp *hdcp)
|
|||||||
!hdcp->connection.is_hdcp2_revoked;
|
!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,
|
static enum mod_hdcp_status execution(struct mod_hdcp *hdcp,
|
||||||
struct mod_hdcp_event_context *event_ctx,
|
struct mod_hdcp_event_context *event_ctx,
|
||||||
union mod_hdcp_transition_input *input)
|
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));
|
memset(&event_ctx, 0, sizeof(struct mod_hdcp_event_context));
|
||||||
event_ctx.event = event;
|
event_ctx.event = event;
|
||||||
|
|
||||||
exit_idle_optimizations(hdcp);
|
|
||||||
|
|
||||||
/* execute and transition */
|
/* execute and transition */
|
||||||
exec_status = execution(hdcp, &event_ctx, &hdcp->auth.trans_input);
|
exec_status = execution(hdcp, &event_ctx, &hdcp->auth.trans_input);
|
||||||
trans_status = transition(
|
trans_status = transition(
|
||||||
|
|||||||
@@ -155,13 +155,6 @@ struct mod_hdcp_ddc {
|
|||||||
} funcs;
|
} funcs;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct mod_hdcp_dm {
|
|
||||||
void *handle;
|
|
||||||
struct {
|
|
||||||
void (*exit_idle_optimizations)(void *handle);
|
|
||||||
} funcs;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct mod_hdcp_psp {
|
struct mod_hdcp_psp {
|
||||||
void *handle;
|
void *handle;
|
||||||
void *funcs;
|
void *funcs;
|
||||||
@@ -278,7 +271,6 @@ struct mod_hdcp_display_query {
|
|||||||
struct mod_hdcp_config {
|
struct mod_hdcp_config {
|
||||||
struct mod_hdcp_psp psp;
|
struct mod_hdcp_psp psp;
|
||||||
struct mod_hdcp_ddc ddc;
|
struct mod_hdcp_ddc ddc;
|
||||||
struct mod_hdcp_dm dm;
|
|
||||||
uint8_t index;
|
uint8_t index;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user