OSDN Git Service

drm/amd/display: skip enable stream on disconnected display
authorWenjing Liu <Wenjing.Liu@amd.com>
Tue, 3 Sep 2019 21:15:48 +0000 (17:15 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 11 Oct 2019 00:24:39 +0000 (19:24 -0500)
[why]
Virtual signal means there is no display attached.
In this case we will assign a virtual signal type to the stream.
We should only enable the front end of the stream but not the back end.

[how]
When stream is enabling with virtual signal type, skip backend programming.

Signed-off-by: Wenjing Liu <Wenjing.Liu@amd.com>
Reviewed-by: Jun Lei <Jun.Lei@amd.com>
Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc_link.c

index 152c564..c2688ef 100644 (file)
@@ -2718,6 +2718,10 @@ void core_link_enable_stream(
        enum dc_status status;
        DC_LOGGER_INIT(pipe_ctx->stream->ctx->logger);
 
+       if (!IS_FPGA_MAXIMUS_DC(core_dc->ctx->dce_environment) &&
+                       dc_is_virtual_signal(pipe_ctx->stream->signal))
+               return;
+
        if (!dc_is_virtual_signal(pipe_ctx->stream->signal)) {
                stream->link->link_enc->funcs->setup(
                        stream->link->link_enc,
@@ -2860,6 +2864,10 @@ void core_link_disable_stream(struct pipe_ctx *pipe_ctx)
        struct dc_stream_state *stream = pipe_ctx->stream;
        struct dc_link *link = stream->sink->link;
 
+       if (!IS_FPGA_MAXIMUS_DC(core_dc->ctx->dce_environment) &&
+                       dc_is_virtual_signal(pipe_ctx->stream->signal))
+               return;
+
 #if defined(CONFIG_DRM_AMD_DC_HDCP)
        update_psp_stream_config(pipe_ctx, true);
 #endif