drm/amd/display: enable audio on DP seamless boot
authorAnthony Wang <anthony1.wang@amd.com>
Wed, 10 Feb 2021 14:08:26 +0000 (09:08 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 22 Feb 2021 23:05:28 +0000 (18:05 -0500)
[Why]
Some external displays with DP can use seamless boot, but their audio endpoints are
only enabled after hotplug.
On boot, these displays inherit UEFI timings without properly initializing audio.

[How]
Enable display audio when seamless booting with an external monitor over DP.

Signed-off-by: Anthony Wang <anthony1.wang@amd.com>
Acked-by: Bindu Ramamurthy <bindu.r@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc_link.c

index fa5059f..81ad546 100644 (file)
@@ -3258,6 +3258,16 @@ void core_link_enable_stream(
                /* Do not touch link on seamless boot optimization. */
                if (pipe_ctx->stream->apply_seamless_boot_optimization) {
                        pipe_ctx->stream->dpms_off = false;
+
+                       /* Still enable stream features & audio on seamless boot for DP external displays */
+                       if (pipe_ctx->stream->signal == SIGNAL_TYPE_DISPLAY_PORT) {
+                               enable_stream_features(pipe_ctx);
+                               if (pipe_ctx->stream_res.audio != NULL) {
+                                       pipe_ctx->stream_res.stream_enc->funcs->dp_audio_enable(pipe_ctx->stream_res.stream_enc);
+                                       dc->hwss.enable_audio_stream(pipe_ctx);
+                               }
+                       }
+
 #if defined(CONFIG_DRM_AMD_DC_HDCP)
                        update_psp_stream_config(pipe_ctx, false);
 #endif