drm/amd/display: Only use analog link encoder with analog engine
authorTimur Kristóf <timur.kristof@gmail.com>
Mon, 26 Jan 2026 21:08:25 +0000 (22:08 +0100)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 18 Feb 2026 15:41:34 +0000 (10:41 -0500)
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 <timur.kristof@gmail.com>
Reviewed-by: Alex Hung <alex.hung@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/resource/dce100/dce100_resource.c
drivers/gpu/drm/amd/display/dc/resource/dce60/dce60_resource.c
drivers/gpu/drm/amd/display/dc/resource/dce80/dce80_resource.c

index a929e64..864634e 100644 (file)
@@ -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,
index 068fb1d..90d8262 100644 (file)
@@ -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,
index 8687104..cde2c2c 100644 (file)
@@ -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,