diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2009-11-23 18:02:35 -0500 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2009-12-07 19:22:42 -0500 |
commit | 4143e919ea999c9356ae4f71b5a3a80e075290d5 (patch) | |
tree | a73412bd65201398aa364146f70b35e1ea6b43bb /drivers/gpu/drm/radeon/radeon_connectors.c | |
parent | 6a93cb250a60af1bb7b4070949f8546a2fdc52ef (diff) |
drm/radeon/kms: store sink type in atom dig connector
This will be used laster when the encoder and transmitters
are set up.
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_connectors.c')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_connectors.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c index 98634ce5ba1..b51e38386cc 100644 --- a/drivers/gpu/drm/radeon/radeon_connectors.c +++ b/drivers/gpu/drm/radeon/radeon_connectors.c | |||
@@ -908,13 +908,9 @@ static int radeon_dp_get_modes(struct drm_connector *connector) | |||
908 | static enum drm_connector_status radeon_dp_detect(struct drm_connector *connector) | 908 | static enum drm_connector_status radeon_dp_detect(struct drm_connector *connector) |
909 | { | 909 | { |
910 | struct radeon_connector *radeon_connector = to_radeon_connector(connector); | 910 | struct radeon_connector *radeon_connector = to_radeon_connector(connector); |
911 | struct drm_encoder *encoder = NULL; | ||
912 | struct drm_encoder_helper_funcs *encoder_funcs; | ||
913 | struct drm_mode_object *obj; | ||
914 | int i; | ||
915 | enum drm_connector_status ret = connector_status_disconnected; | 911 | enum drm_connector_status ret = connector_status_disconnected; |
916 | int sink_type; | 912 | struct radeon_connector_atom_dig *radeon_dig_connector = radeon_connector->con_priv; |
917 | bool dret; | 913 | u8 sink_type; |
918 | 914 | ||
919 | if (radeon_connector->edid) { | 915 | if (radeon_connector->edid) { |
920 | kfree(radeon_connector->edid); | 916 | kfree(radeon_connector->edid); |
@@ -924,8 +920,17 @@ static enum drm_connector_status radeon_dp_detect(struct drm_connector *connecto | |||
924 | sink_type = radeon_dp_getsinktype(radeon_connector); | 920 | sink_type = radeon_dp_getsinktype(radeon_connector); |
925 | if (sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT) { | 921 | if (sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT) { |
926 | radeon_dp_getdpcd(radeon_connector); | 922 | radeon_dp_getdpcd(radeon_connector); |
923 | radeon_dig_connector->dp_sink_type = sink_type; | ||
927 | ret = connector_status_connected; | 924 | ret = connector_status_connected; |
925 | } else { | ||
926 | radeon_i2c_do_lock(radeon_connector->ddc_bus, 1); | ||
927 | if (radeon_ddc_probe(radeon_connector)) { | ||
928 | radeon_dig_connector->dp_sink_type = sink_type; | ||
929 | ret = connector_status_connected; | ||
930 | } | ||
931 | radeon_i2c_do_lock(radeon_connector->ddc_bus, 0); | ||
928 | } | 932 | } |
933 | |||
929 | return ret; | 934 | return ret; |
930 | } | 935 | } |
931 | 936 | ||