aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/radeon_connectors.c
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2011-10-03 08:37:33 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2011-10-16 14:14:52 -0700
commit23882c85d97acaf626ace83e2feabd46393a1b6a (patch)
tree57bf5f4a9b0308ebd0cd0ded293f8aad54800461 /drivers/gpu/drm/radeon/radeon_connectors.c
parent1a795f752c6c41c2bdb15290b9f42328289a27ce (diff)
downloadkernel_samsung_smdk4412-23882c85d97acaf626ace83e2feabd46393a1b6a.zip
kernel_samsung_smdk4412-23882c85d97acaf626ace83e2feabd46393a1b6a.tar.gz
kernel_samsung_smdk4412-23882c85d97acaf626ace83e2feabd46393a1b6a.tar.bz2
drm/radeon/kms: Fix logic error in DP HPD handler
commit 5ba7ddf81634bfdf32d09261d2959e3f5b7c4263 upstream. Only disable the pipe if the monitor is physically disconnected. The previous logic also disabled the pipe if the link was trained. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=41248 Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_connectors.c')
-rw-r--r--drivers/gpu/drm/radeon/radeon_connectors.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c
index d1b36f8..05b8b2c 100644
--- a/drivers/gpu/drm/radeon/radeon_connectors.c
+++ b/drivers/gpu/drm/radeon/radeon_connectors.c
@@ -68,11 +68,11 @@ void radeon_connector_hotplug(struct drm_connector *connector)
if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) {
int saved_dpms = connector->dpms;
- if (radeon_hpd_sense(rdev, radeon_connector->hpd.hpd) &&
- radeon_dp_needs_link_train(radeon_connector))
- drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON);
- else
+ /* Only turn off the display it it's physically disconnected */
+ if (!radeon_hpd_sense(rdev, radeon_connector->hpd.hpd))
drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF);
+ else if (radeon_dp_needs_link_train(radeon_connector))
+ drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON);
connector->dpms = saved_dpms;
}
}