From: Alex Deucher <[email protected]>
Settings in this table reflect the physical panel/connector rather
than the internal dig encoding.
v2: fix typo for DRM_MODE_CONNECTOR_VGA case.
Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
---
drivers/gpu/drm/radeon/radeon_encoders.c | 12 +++++++++++-
1 files changed, 11 insertions(+), 1 deletions(-)
diff --git a/drivers/gpu/drm/radeon/radeon_encoders.c
b/drivers/gpu/drm/radeon/radeon_encoders.c
index a90d9ee..eb3f6dc 100644
--- a/drivers/gpu/drm/radeon/radeon_encoders.c
+++ b/drivers/gpu/drm/radeon/radeon_encoders.c
@@ -1638,7 +1638,17 @@ atombios_set_encoder_crtc_source(struct drm_encoder
*encoder)
break;
case 2:
args.v2.ucCRTC = radeon_crtc->crtc_id;
- args.v2.ucEncodeMode =
atombios_get_encoder_mode(encoder);
+ if (radeon_encoder_is_dp_bridge(encoder)) {
+ struct drm_connector *connector =
radeon_get_connector_for_encoder(encoder);
+
+ if (connector->connector_type ==
DRM_MODE_CONNECTOR_LVDS)
+ args.v2.ucEncodeMode =
ATOM_ENCODER_MODE_LVDS;
+ else if (connector->connector_type ==
DRM_MODE_CONNECTOR_VGA)
+ args.v2.ucEncodeMode =
ATOM_ENCODER_MODE_CRT;
+ else
+ args.v2.ucEncodeMode =
atombios_get_encoder_mode(encoder);
+ } else
+ args.v2.ucEncodeMode =
atombios_get_encoder_mode(encoder);
switch (radeon_encoder->encoder_id) {
case ENCODER_OBJECT_ID_INTERNAL_UNIPHY:
case ENCODER_OBJECT_ID_INTERNAL_UNIPHY1:
--
1.7.1.1