diff options
| author | Michael Strauss <[email protected]> | 2023-11-30 15:44:36 +0000 |
|---|---|---|
| committer | Alex Deucher <[email protected]> | 2023-12-19 19:59:03 +0000 |
| commit | 5a82b8d6c05f9b30828ede1b103b9ee5cb5c912e (patch) | |
| tree | f6768b5890fc24203474ad3ba2aeee340da4d927 /drivers/gpu/drm/amd/display/dc/dml2/dml2_utils.c | |
| parent | drm/amd/display: Deep copy dml2_context when copying dc_state (diff) | |
| download | kernel-5a82b8d6c05f9b30828ede1b103b9ee5cb5c912e.tar.gz kernel-5a82b8d6c05f9b30828ede1b103b9ee5cb5c912e.zip | |
drm/amd/display: Fix lightup regression with DP2 single display configs
[WHY]
Previous fix for multiple displays downstream of DP2 MST hub caused regression
[HOW]
Match sink IDs instead of sink struct addresses
Reviewed-by: Nicholas Kazlauskas <[email protected]>
Reviewed-by: Charlene Liu <[email protected]>
Acked-by: Wayne Lin <[email protected]>
Signed-off-by: Michael Strauss <[email protected]>
Tested-by: Daniel Wheeler <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
Diffstat (limited to 'drivers/gpu/drm/amd/display/dc/dml2/dml2_utils.c')
| -rw-r--r-- | drivers/gpu/drm/amd/display/dc/dml2/dml2_utils.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/dml2/dml2_utils.c b/drivers/gpu/drm/amd/display/dc/dml2/dml2_utils.c index 9156e2ea55f5..8c0794af5ade 100644 --- a/drivers/gpu/drm/amd/display/dc/dml2/dml2_utils.c +++ b/drivers/gpu/drm/amd/display/dc/dml2/dml2_utils.c @@ -161,6 +161,14 @@ bool is_dp2p0_output_encoder(const struct pipe_ctx *pipe_ctx) if (pipe_ctx->stream == NULL) return false; + /* Count MST hubs once by treating only 1st remote sink in topology as an encoder */ + if (pipe_ctx->stream->link && pipe_ctx->stream->link->remote_sinks[0]) { + return (pipe_ctx->stream_res.hpo_dp_stream_enc && + pipe_ctx->link_res.hpo_dp_link_enc && + dc_is_dp_signal(pipe_ctx->stream->signal) && + (pipe_ctx->stream->link->remote_sinks[0]->sink_id == pipe_ctx->stream->sink->sink_id)); + } + return (pipe_ctx->stream_res.hpo_dp_stream_enc && pipe_ctx->link_res.hpo_dp_link_enc && dc_is_dp_signal(pipe_ctx->stream->signal)); |
