| From 340764465aa4a586ca332e61ae64883e5ad6f183 Mon Sep 17 00:00:00 2001 |
| From: Jerome Glisse <jglisse@redhat.com> |
| Date: Mon, 24 Oct 2011 18:16:34 -0400 |
| Subject: drm/radeon: avoid bouncing connector status btw disconnected & unknown |
| |
| From: Jerome Glisse <jglisse@redhat.com> |
| |
| commit 340764465aa4a586ca332e61ae64883e5ad6f183 upstream. |
| |
| Since force handling rework of d0d0a225e6ad43314c9aa7ea081f76adc5098ad4 |
| we could end up bouncing connector status btw disconnected and unknown. |
| When connector status change a call to output_poll_changed happen which |
| in turn ask again for detect but with force set. |
| |
| So set the load detect flags whenever we report the connector as |
| connected or unknown this avoid bouncing btw disconnected and unknown. |
| |
| Signed-off-by: Jerome Glisse <jglisse@redhat.com> |
| Reviewed-by: Alex Deucher <alexdeucher@gmail.com> |
| Signed-off-by: Dave Airlie <airlied@redhat.com> |
| Cc: Stefan Lippers-Hollmann <s.L-H@gmx.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/gpu/drm/radeon/radeon_connectors.c | 5 +++-- |
| 1 file changed, 3 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/gpu/drm/radeon/radeon_connectors.c |
| +++ b/drivers/gpu/drm/radeon/radeon_connectors.c |
| @@ -764,7 +764,7 @@ radeon_vga_detect(struct drm_connector * |
| if (radeon_connector->dac_load_detect && encoder) { |
| encoder_funcs = encoder->helper_private; |
| ret = encoder_funcs->detect(encoder, connector); |
| - if (ret == connector_status_connected) |
| + if (ret != connector_status_disconnected) |
| radeon_connector->detected_by_load = true; |
| } |
| } |
| @@ -1005,8 +1005,9 @@ radeon_dvi_detect(struct drm_connector * |
| ret = encoder_funcs->detect(encoder, connector); |
| if (ret == connector_status_connected) { |
| radeon_connector->use_digital = false; |
| - radeon_connector->detected_by_load = true; |
| } |
| + if (ret != connector_status_disconnected) |
| + radeon_connector->detected_by_load = true; |
| } |
| break; |
| } |