mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
drm/amd/display: Don't use stereo sync and audio on RGB signals (v2)
Analog video signals on VGA or DVI-A (analog part of DVI-I) don't support audio, so avoid calling any audio related functions on analog signals. Stereo sync was not set up for analog signals in the legacy display code either, so there is no loss of functionality if we omit it from DC for now. Also add a dc_is_rgb_signal similar to other dc_is_*_signal. v2: Added comment to clarify what we mean by RGB in this context. Signed-off-by: Timur Kristóf <timur.kristof@gmail.com> Reviewed-by: Harry Wentland <harry.wentland@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
727b179a80
commit
8c8df54a2b
@@ -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,
|
||||
|
||||
@@ -2371,7 +2371,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);
|
||||
|
||||
@@ -118,6 +118,18 @@ static inline bool dc_is_dvi_signal(enum signal_type signal)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* dc_is_rgb_signal() - Whether the signal is analog RGB.
|
||||
*
|
||||
* Returns whether the given signal type is an analog RGB signal
|
||||
* that is used with a DAC on VGA or DVI-I connectors.
|
||||
* Not to be confused with other uses of "RGB", such as RGB color space.
|
||||
*/
|
||||
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) {
|
||||
|
||||
Reference in New Issue
Block a user