aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/atombios_dp.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2014-06-05 06:28:59 -0400
committerDave Airlie <airlied@redhat.com>2014-06-05 06:28:59 -0400
commit8d4ad9d4bb0a618c975a32d77087694ec6336f68 (patch)
treed18d12688174a623e3503b11118e44ef8186c90b /drivers/gpu/drm/radeon/atombios_dp.c
parent5ea1f752ae04be403a3dc8ec876a60d7f5f6990a (diff)
parent9e9a928eed8796a0a1aaed7e0b676db86ba84594 (diff)
Merge commit '9e9a928eed8796a0a1aaed7e0b676db86ba84594' into drm-next
Merge drm-fixes into drm-next. Both i915 and radeon need this done for later patches. Conflicts: drivers/gpu/drm/drm_crtc_helper.c drivers/gpu/drm/i915/i915_drv.h drivers/gpu/drm/i915/i915_gem.c drivers/gpu/drm/i915/i915_gem_execbuffer.c drivers/gpu/drm/i915/i915_gem_gtt.c
Diffstat (limited to 'drivers/gpu/drm/radeon/atombios_dp.c')
-rw-r--r--drivers/gpu/drm/radeon/atombios_dp.c44
1 files changed, 25 insertions, 19 deletions
diff --git a/drivers/gpu/drm/radeon/atombios_dp.c b/drivers/gpu/drm/radeon/atombios_dp.c
index a54c44181a0f..c5b1f2da3954 100644
--- a/drivers/gpu/drm/radeon/atombios_dp.c
+++ b/drivers/gpu/drm/radeon/atombios_dp.c
@@ -390,11 +390,11 @@ static void radeon_dp_probe_oui(struct radeon_connector *radeon_connector)
390 if (!(dig_connector->dpcd[DP_DOWN_STREAM_PORT_COUNT] & DP_OUI_SUPPORT)) 390 if (!(dig_connector->dpcd[DP_DOWN_STREAM_PORT_COUNT] & DP_OUI_SUPPORT))
391 return; 391 return;
392 392
393 if (drm_dp_dpcd_read(&radeon_connector->ddc_bus->aux, DP_SINK_OUI, buf, 3)) 393 if (drm_dp_dpcd_read(&radeon_connector->ddc_bus->aux, DP_SINK_OUI, buf, 3) == 3)
394 DRM_DEBUG_KMS("Sink OUI: %02hx%02hx%02hx\n", 394 DRM_DEBUG_KMS("Sink OUI: %02hx%02hx%02hx\n",
395 buf[0], buf[1], buf[2]); 395 buf[0], buf[1], buf[2]);
396 396
397 if (drm_dp_dpcd_read(&radeon_connector->ddc_bus->aux, DP_BRANCH_OUI, buf, 3)) 397 if (drm_dp_dpcd_read(&radeon_connector->ddc_bus->aux, DP_BRANCH_OUI, buf, 3) == 3)
398 DRM_DEBUG_KMS("Branch OUI: %02hx%02hx%02hx\n", 398 DRM_DEBUG_KMS("Branch OUI: %02hx%02hx%02hx\n",
399 buf[0], buf[1], buf[2]); 399 buf[0], buf[1], buf[2]);
400} 400}
@@ -443,21 +443,23 @@ int radeon_dp_get_panel_mode(struct drm_encoder *encoder,
443 443
444 if (dp_bridge != ENCODER_OBJECT_ID_NONE) { 444 if (dp_bridge != ENCODER_OBJECT_ID_NONE) {
445 /* DP bridge chips */ 445 /* DP bridge chips */
446 drm_dp_dpcd_readb(&radeon_connector->ddc_bus->aux, 446 if (drm_dp_dpcd_readb(&radeon_connector->ddc_bus->aux,
447 DP_EDP_CONFIGURATION_CAP, &tmp); 447 DP_EDP_CONFIGURATION_CAP, &tmp) == 1) {
448 if (tmp & 1) 448 if (tmp & 1)
449 panel_mode = DP_PANEL_MODE_INTERNAL_DP2_MODE; 449 panel_mode = DP_PANEL_MODE_INTERNAL_DP2_MODE;
450 else if ((dp_bridge == ENCODER_OBJECT_ID_NUTMEG) || 450 else if ((dp_bridge == ENCODER_OBJECT_ID_NUTMEG) ||
451 (dp_bridge == ENCODER_OBJECT_ID_TRAVIS)) 451 (dp_bridge == ENCODER_OBJECT_ID_TRAVIS))
452 panel_mode = DP_PANEL_MODE_INTERNAL_DP1_MODE; 452 panel_mode = DP_PANEL_MODE_INTERNAL_DP1_MODE;
453 else 453 else
454 panel_mode = DP_PANEL_MODE_EXTERNAL_DP_MODE; 454 panel_mode = DP_PANEL_MODE_EXTERNAL_DP_MODE;
455 }
455 } else if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) { 456 } else if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) {
456 /* eDP */ 457 /* eDP */
457 drm_dp_dpcd_readb(&radeon_connector->ddc_bus->aux, 458 if (drm_dp_dpcd_readb(&radeon_connector->ddc_bus->aux,
458 DP_EDP_CONFIGURATION_CAP, &tmp); 459 DP_EDP_CONFIGURATION_CAP, &tmp) == 1) {
459 if (tmp & 1) 460 if (tmp & 1)
460 panel_mode = DP_PANEL_MODE_INTERNAL_DP2_MODE; 461 panel_mode = DP_PANEL_MODE_INTERNAL_DP2_MODE;
462 }
461 } 463 }
462 464
463 return panel_mode; 465 return panel_mode;
@@ -833,11 +835,15 @@ void radeon_dp_link_train(struct drm_encoder *encoder,
833 else 835 else
834 dp_info.enc_id |= ATOM_DP_CONFIG_LINK_A; 836 dp_info.enc_id |= ATOM_DP_CONFIG_LINK_A;
835 837
836 drm_dp_dpcd_readb(&radeon_connector->ddc_bus->aux, DP_MAX_LANE_COUNT, &tmp); 838 if (drm_dp_dpcd_readb(&radeon_connector->ddc_bus->aux, DP_MAX_LANE_COUNT, &tmp)
837 if (ASIC_IS_DCE5(rdev) && (tmp & DP_TPS3_SUPPORTED)) 839 == 1) {
838 dp_info.tp3_supported = true; 840 if (ASIC_IS_DCE5(rdev) && (tmp & DP_TPS3_SUPPORTED))
839 else 841 dp_info.tp3_supported = true;
842 else
843 dp_info.tp3_supported = false;
844 } else {
840 dp_info.tp3_supported = false; 845 dp_info.tp3_supported = false;
846 }
841 847
842 memcpy(dp_info.dpcd, dig_connector->dpcd, DP_RECEIVER_CAP_SIZE); 848 memcpy(dp_info.dpcd, dig_connector->dpcd, DP_RECEIVER_CAP_SIZE);
843 dp_info.rdev = rdev; 849 dp_info.rdev = rdev;