diff options
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/drm/radeon/atombios_dp.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/atombios_dp.c b/drivers/gpu/drm/radeon/atombios_dp.c index 79e8ebc05307..b5628ce1228b 100644 --- a/drivers/gpu/drm/radeon/atombios_dp.c +++ b/drivers/gpu/drm/radeon/atombios_dp.c | |||
@@ -553,6 +553,7 @@ static void radeon_dp_set_panel_mode(struct drm_encoder *encoder, | |||
553 | { | 553 | { |
554 | struct drm_device *dev = encoder->dev; | 554 | struct drm_device *dev = encoder->dev; |
555 | struct radeon_device *rdev = dev->dev_private; | 555 | struct radeon_device *rdev = dev->dev_private; |
556 | struct radeon_connector *radeon_connector = to_radeon_connector(connector); | ||
556 | int panel_mode = DP_PANEL_MODE_EXTERNAL_DP_MODE; | 557 | int panel_mode = DP_PANEL_MODE_EXTERNAL_DP_MODE; |
557 | 558 | ||
558 | if (!ASIC_IS_DCE4(rdev)) | 559 | if (!ASIC_IS_DCE4(rdev)) |
@@ -560,10 +561,20 @@ static void radeon_dp_set_panel_mode(struct drm_encoder *encoder, | |||
560 | 561 | ||
561 | if (radeon_connector_encoder_is_dp_bridge(connector)) | 562 | if (radeon_connector_encoder_is_dp_bridge(connector)) |
562 | panel_mode = DP_PANEL_MODE_INTERNAL_DP1_MODE; | 563 | panel_mode = DP_PANEL_MODE_INTERNAL_DP1_MODE; |
564 | else if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) { | ||
565 | u8 tmp = radeon_read_dpcd_reg(radeon_connector, DP_EDP_CONFIGURATION_CAP); | ||
566 | if (tmp & 1) | ||
567 | panel_mode = DP_PANEL_MODE_INTERNAL_DP2_MODE; | ||
568 | } | ||
563 | 569 | ||
564 | atombios_dig_encoder_setup(encoder, | 570 | atombios_dig_encoder_setup(encoder, |
565 | ATOM_ENCODER_CMD_SETUP_PANEL_MODE, | 571 | ATOM_ENCODER_CMD_SETUP_PANEL_MODE, |
566 | panel_mode); | 572 | panel_mode); |
573 | |||
574 | if ((connector->connector_type == DRM_MODE_CONNECTOR_eDP) && | ||
575 | (panel_mode == DP_PANEL_MODE_INTERNAL_DP2_MODE)) { | ||
576 | radeon_write_dpcd_reg(radeon_connector, DP_EDP_CONFIGURATION_SET, 1); | ||
577 | } | ||
567 | } | 578 | } |
568 | 579 | ||
569 | void radeon_dp_set_link_config(struct drm_connector *connector, | 580 | void radeon_dp_set_link_config(struct drm_connector *connector, |