diff options
author | Dave Airlie <airlied@redhat.com> | 2010-10-26 12:55:52 +1000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2010-10-26 12:55:52 +1000 |
commit | c3cceeddf0b5f97b0d2352b98ef0f025e31a9ae3 (patch) | |
tree | b1507f654f74198094145b4991f37c93c3ea1ea0 /drivers/gpu | |
parent | e26fd1199ebab0d469fc3e037da5932d382f0669 (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.c | 10 |
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 64c3ddf0216..4dac4b0a02e 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) ret = connector_status_connected; } } else { + + /* if we aren't forcing don't do destructive polling */ + if (!force) + return connector->status; + if (radeon_connector->dac_load_detect && encoder) { encoder_funcs = encoder->helper_private; ret = encoder_funcs->detect(encoder, connector); @@ -850,6 +855,11 @@ radeon_dvi_detect(struct drm_connector *connector, bool force) if ((ret == connector_status_connected) && (radeon_connector->use_digital == true)) goto out; + if (!force) { + ret = connector->status; + goto out; + } + /* find analog encoder */ if (radeon_connector->dac_load_detect) { for (i = 0; i < DRM_CONNECTOR_MAX_ENCODER; i++) { |