Features like stereo sync and audio are not supported by RGB
signals, so don't try to use them.

Also add a dc_is_rgb_signal similar to other dc_is_*_signal.

Signed-off-by: Timur Kristóf <timur.kris...@gmail.com>
---
 drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c | 3 ++-
 drivers/gpu/drm/amd/display/dc/link/link_dpms.c          | 6 ++++--
 drivers/gpu/drm/amd/display/include/signal_types.h       | 5 +++++
 3 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c 
b/drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
index b68bcc9fca0a..f3470716734d 100644
--- a/drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
+++ b/drivers/gpu/drm/amd/display/dc/link/hwss/link_hwss_dio.c
@@ -115,7 +115,8 @@ void setup_dio_stream_attribute(struct pipe_ctx *pipe_ctx)
        struct dc_stream_state *stream = pipe_ctx->stream;
        struct dc_link *link = stream->link;
 
-       if (!dc_is_virtual_signal(stream->signal))
+       if (!dc_is_virtual_signal(stream->signal) &&
+               !dc_is_rgb_signal(stream->signal))
                stream_encoder->funcs->setup_stereo_sync(
                                stream_encoder,
                                pipe_ctx->stream_res.tg->inst,
diff --git a/drivers/gpu/drm/amd/display/dc/link/link_dpms.c 
b/drivers/gpu/drm/amd/display/dc/link/link_dpms.c
index 8c8682f743d6..d6b7347c6c11 100644
--- a/drivers/gpu/drm/amd/display/dc/link/link_dpms.c
+++ b/drivers/gpu/drm/amd/display/dc/link/link_dpms.c
@@ -2369,7 +2369,8 @@ void link_set_dpms_off(struct pipe_ctx *pipe_ctx)
                        set_avmute(pipe_ctx, true);
        }
 
-       dc->hwss.disable_audio_stream(pipe_ctx);
+       if (!dc_is_rgb_signal(pipe_ctx->stream->signal))
+               dc->hwss.disable_audio_stream(pipe_ctx);
 
        update_psp_stream_config(pipe_ctx, true);
        dc->hwss.blank_stream(pipe_ctx);
@@ -2656,7 +2657,8 @@ void link_set_dpms_on(
                enable_stream_features(pipe_ctx);
        update_psp_stream_config(pipe_ctx, false);
 
-       dc->hwss.enable_audio_stream(pipe_ctx);
+       if (!dc_is_rgb_signal(pipe_ctx->stream->signal))
+               dc->hwss.enable_audio_stream(pipe_ctx);
 
        if (dc_is_hdmi_signal(pipe_ctx->stream->signal)) {
                set_avmute(pipe_ctx, false);
diff --git a/drivers/gpu/drm/amd/display/include/signal_types.h 
b/drivers/gpu/drm/amd/display/include/signal_types.h
index a10d6b988aab..825a08fcb125 100644
--- a/drivers/gpu/drm/amd/display/include/signal_types.h
+++ b/drivers/gpu/drm/amd/display/include/signal_types.h
@@ -118,6 +118,11 @@ static inline bool dc_is_dvi_signal(enum signal_type 
signal)
        }
 }
 
+static inline bool dc_is_rgb_signal(enum signal_type signal)
+{
+       return (signal == SIGNAL_TYPE_RGB);
+}
+
 static inline bool dc_is_tmds_signal(enum signal_type signal)
 {
        switch (signal) {
-- 
2.50.1

Reply via email to