diff options
| author | Dave Airlie <airlied@redhat.com> | 2010-10-25 22:55:52 -0400 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2010-10-25 22:55:52 -0400 |
| commit | c3cceeddf0b5f97b0d2352b98ef0f025e31a9ae3 (patch) | |
| tree | b1507f654f74198094145b4991f37c93c3ea1ea0 | |
| 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>
| -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 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++) { |
