aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2010-10-25 22:55:52 -0400
committerDave Airlie <airlied@redhat.com>2010-10-25 22:55:52 -0400
commitc3cceeddf0b5f97b0d2352b98ef0f025e31a9ae3 (patch)
treeb1507f654f74198094145b4991f37c93c3ea1ea0 /drivers/gpu
parente26fd1199ebab0d469fc3e037da5932d382f0669 (diff)
drm/radeon/kms: don't poll dac load detect.
This is slightly destructive, cpu intensive and can cause lockups. Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/radeon/radeon_connectors.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c
index 64c3ddf02167..4dac4b0a02ee 100644
--- a/drivers/gpu/drm/radeon/radeon_connectors.c
+++ b/drivers/gpu/drm/radeon/radeon_connectors.c
@@ -663,6 +663,11 @@ radeon_vga_detect(struct drm_connector *connector, bool force)
663 ret = connector_status_connected; 663 ret = connector_status_connected;
664 } 664 }
665 } else { 665 } else {
666
667 /* if we aren't forcing don't do destructive polling */
668 if (!force)
669 return connector->status;
670
666 if (radeon_connector->dac_load_detect && encoder) { 671 if (radeon_connector->dac_load_detect && encoder) {
667 encoder_funcs = encoder->helper_private; 672 encoder_funcs = encoder->helper_private;
668 ret = encoder_funcs->detect(encoder, connector); 673 ret = encoder_funcs->detect(encoder, connector);
@@ -850,6 +855,11 @@ radeon_dvi_detect(struct drm_connector *connector, bool force)
850 if ((ret == connector_status_connected) && (radeon_connector->use_digital == true)) 855 if ((ret == connector_status_connected) && (radeon_connector->use_digital == true))
851 goto out; 856 goto out;
852 857
858 if (!force) {
859 ret = connector->status;
860 goto out;
861 }
862
853 /* find analog encoder */ 863 /* find analog encoder */
854 if (radeon_connector->dac_load_detect) { 864 if (radeon_connector->dac_load_detect) {
855 for (i = 0; i < DRM_CONNECTOR_MAX_ENCODER; i++) { 865 for (i = 0; i < DRM_CONNECTOR_MAX_ENCODER; i++) {