Some GPUs have analog connectors that work with a DP bridge chip
and don't actually have an internal DAC: Those should not use
the analog link encoder code path.

Fixes: 0fbe321a93ce ("drm/amd/display: Implement DCE analog link encoders (v2)")
Signed-off-by: Timur Kristóf <[email protected]>
---
 .../gpu/drm/amd/display/dc/resource/dce100/dce100_resource.c   | 3 ++-
 drivers/gpu/drm/amd/display/dc/resource/dce60/dce60_resource.c | 3 ++-
 drivers/gpu/drm/amd/display/dc/resource/dce80/dce80_resource.c | 3 ++-
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/resource/dce100/dce100_resource.c 
b/drivers/gpu/drm/amd/display/dc/resource/dce100/dce100_resource.c
index d40d91ec2035..a916872db7bd 100644
--- a/drivers/gpu/drm/amd/display/dc/resource/dce100/dce100_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/resource/dce100/dce100_resource.c
@@ -638,7 +638,8 @@ static struct link_encoder *dce100_link_encoder_create(
        if (!enc110)
                return NULL;
 
-       if (enc_init_data->connector.id == CONNECTOR_ID_VGA) {
+       if (enc_init_data->connector.id == CONNECTOR_ID_VGA &&
+           enc_init_data->analog_engine != ENGINE_ID_UNKNOWN) {
                dce110_link_encoder_construct(enc110,
                        enc_init_data,
                        &link_enc_feature,
diff --git a/drivers/gpu/drm/amd/display/dc/resource/dce60/dce60_resource.c 
b/drivers/gpu/drm/amd/display/dc/resource/dce60/dce60_resource.c
index 068fb1df8d88..90d826237cf0 100644
--- a/drivers/gpu/drm/amd/display/dc/resource/dce60/dce60_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/resource/dce60/dce60_resource.c
@@ -733,7 +733,8 @@ static struct link_encoder *dce60_link_encoder_create(
        if (!enc110)
                return NULL;
 
-       if (enc_init_data->connector.id == CONNECTOR_ID_VGA) {
+       if (enc_init_data->connector.id == CONNECTOR_ID_VGA &&
+           enc_init_data->analog_engine != ENGINE_ID_UNKNOWN) {
                dce60_link_encoder_construct(enc110,
                        enc_init_data,
                        &link_enc_feature,
diff --git a/drivers/gpu/drm/amd/display/dc/resource/dce80/dce80_resource.c 
b/drivers/gpu/drm/amd/display/dc/resource/dce80/dce80_resource.c
index 8687104cabb7..cde2c2cba1dd 100644
--- a/drivers/gpu/drm/amd/display/dc/resource/dce80/dce80_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/resource/dce80/dce80_resource.c
@@ -740,7 +740,8 @@ static struct link_encoder *dce80_link_encoder_create(
        if (!enc110)
                return NULL;
 
-       if (enc_init_data->connector.id == CONNECTOR_ID_VGA) {
+       if (enc_init_data->connector.id == CONNECTOR_ID_VGA &&
+           enc_init_data->analog_engine != ENGINE_ID_UNKNOWN) {
                dce110_link_encoder_construct(enc110,
                        enc_init_data,
                        &link_enc_feature,
-- 
2.52.0

Reply via email to