aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm
diff options
context:
space:
mode:
authorJesse Barnes <jbarnes@virtuousgeek.org>2011-07-07 14:10:59 -0400
committerKeith Packard <keithp@keithp.com>2011-07-07 16:38:40 -0400
commit59cd09e1aea3ac6eb15b45e5d2261a63ecb1799c (patch)
tree89e76b57e1b722d35f84bb3fbe474eb7c1e46d57 /drivers/gpu/drm
parent7183dc2912510cf005fcc59239f8d153ef51d3f0 (diff)
drm/i915/dp: read more receiver capability bits on hotplug
When a hotplug event is received, we need to check the receiver cap bits in case they've changed (as they might with a hub or chain config). Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> Reviewed-by: Keith Packard <keithp@keithp.com> Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'drivers/gpu/drm')
-rw-r--r--drivers/gpu/drm/i915/intel_dp.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index fc51730b89d6..a9a5051419df 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -1522,6 +1522,8 @@ intel_dp_link_down(struct intel_dp *intel_dp)
1522static void 1522static void
1523intel_dp_check_link_status(struct intel_dp *intel_dp) 1523intel_dp_check_link_status(struct intel_dp *intel_dp)
1524{ 1524{
1525 int ret;
1526
1525 if (!intel_dp->base.base.crtc) 1527 if (!intel_dp->base.base.crtc)
1526 return; 1528 return;
1527 1529
@@ -1530,6 +1532,15 @@ intel_dp_check_link_status(struct intel_dp *intel_dp)
1530 return; 1532 return;
1531 } 1533 }
1532 1534
1535 /* Try to read receiver status if the link appears to be up */
1536 ret = intel_dp_aux_native_read(intel_dp,
1537 0x000, intel_dp->dpcd,
1538 sizeof (intel_dp->dpcd));
1539 if (ret != sizeof(intel_dp->dpcd)) {
1540 intel_dp_link_down(intel_dp);
1541 return;
1542 }
1543
1533 if (!intel_channel_eq_ok(intel_dp)) { 1544 if (!intel_channel_eq_ok(intel_dp)) {
1534 intel_dp_start_link_train(intel_dp); 1545 intel_dp_start_link_train(intel_dp);
1535 intel_dp_complete_link_train(intel_dp); 1546 intel_dp_complete_link_train(intel_dp);