diff options
author | Alex Deucher <alexander.deucher@amd.com> | 2014-07-15 10:38:10 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2014-08-05 08:53:29 -0400 |
commit | 72a5c970a57b51f20f8876816869c937340176b5 (patch) | |
tree | 0ec8f5432e14015b29ee2198f030ba6b45d6d887 | |
parent | 88fd4789cdc403a5fb0839fbb8ea8899d21c56bd (diff) |
drm/radeon: restructure edid fetching
Split radeon_ddc_get_modes() and move it into
radeon_connectors.c since that is the only place
that uses it.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_connectors.c | 162 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_display.c | 58 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_mode.h | 1 |
3 files changed, 110 insertions, 111 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c index ce50ea629c71..5b5d28ad9ba5 100644 --- a/drivers/gpu/drm/radeon/radeon_connectors.c +++ b/drivers/gpu/drm/radeon/radeon_connectors.c | |||
@@ -262,6 +262,79 @@ static struct drm_encoder *radeon_find_encoder(struct drm_connector *connector, | |||
262 | return NULL; | 262 | return NULL; |
263 | } | 263 | } |
264 | 264 | ||
265 | static void radeon_connector_get_edid(struct drm_connector *connector) | ||
266 | { | ||
267 | struct drm_device *dev = connector->dev; | ||
268 | struct radeon_device *rdev = dev->dev_private; | ||
269 | struct radeon_connector *radeon_connector = to_radeon_connector(connector); | ||
270 | |||
271 | if (radeon_connector->edid) | ||
272 | return; | ||
273 | |||
274 | /* on hw with routers, select right port */ | ||
275 | if (radeon_connector->router.ddc_valid) | ||
276 | radeon_router_select_ddc_port(radeon_connector); | ||
277 | |||
278 | if ((radeon_connector_encoder_get_dp_bridge_encoder_id(connector) != | ||
279 | ENCODER_OBJECT_ID_NONE) && | ||
280 | radeon_connector->ddc_bus->has_aux) { | ||
281 | radeon_connector->edid = drm_get_edid(connector, | ||
282 | &radeon_connector->ddc_bus->aux.ddc); | ||
283 | } else if ((connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) || | ||
284 | (connector->connector_type == DRM_MODE_CONNECTOR_eDP)) { | ||
285 | struct radeon_connector_atom_dig *dig = radeon_connector->con_priv; | ||
286 | |||
287 | if ((dig->dp_sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT || | ||
288 | dig->dp_sink_type == CONNECTOR_OBJECT_ID_eDP) && | ||
289 | radeon_connector->ddc_bus->has_aux) | ||
290 | radeon_connector->edid = drm_get_edid(&radeon_connector->base, | ||
291 | &radeon_connector->ddc_bus->aux.ddc); | ||
292 | else if (radeon_connector->ddc_bus) | ||
293 | radeon_connector->edid = drm_get_edid(&radeon_connector->base, | ||
294 | &radeon_connector->ddc_bus->adapter); | ||
295 | } else if (radeon_connector->ddc_bus) { | ||
296 | radeon_connector->edid = drm_get_edid(&radeon_connector->base, | ||
297 | &radeon_connector->ddc_bus->adapter); | ||
298 | } | ||
299 | |||
300 | if (!radeon_connector->edid) { | ||
301 | if (rdev->is_atom_bios) { | ||
302 | /* some laptops provide a hardcoded edid in rom for LCDs */ | ||
303 | if (((connector->connector_type == DRM_MODE_CONNECTOR_LVDS) || | ||
304 | (connector->connector_type == DRM_MODE_CONNECTOR_eDP))) | ||
305 | radeon_connector->edid = radeon_bios_get_hardcoded_edid(rdev); | ||
306 | } else { | ||
307 | /* some servers provide a hardcoded edid in rom for KVMs */ | ||
308 | radeon_connector->edid = radeon_bios_get_hardcoded_edid(rdev); | ||
309 | } | ||
310 | } | ||
311 | } | ||
312 | |||
313 | static void radeon_connector_free_edid(struct drm_connector *connector) | ||
314 | { | ||
315 | struct radeon_connector *radeon_connector = to_radeon_connector(connector); | ||
316 | |||
317 | if (radeon_connector->edid) { | ||
318 | kfree(radeon_connector->edid); | ||
319 | radeon_connector->edid = NULL; | ||
320 | } | ||
321 | } | ||
322 | |||
323 | static int radeon_ddc_get_modes(struct drm_connector *connector) | ||
324 | { | ||
325 | struct radeon_connector *radeon_connector = to_radeon_connector(connector); | ||
326 | int ret; | ||
327 | |||
328 | if (radeon_connector->edid) { | ||
329 | drm_mode_connector_update_edid_property(connector, radeon_connector->edid); | ||
330 | ret = drm_add_edid_modes(connector, radeon_connector->edid); | ||
331 | drm_edid_to_eld(connector, radeon_connector->edid); | ||
332 | return ret; | ||
333 | } | ||
334 | drm_mode_connector_update_edid_property(connector, NULL); | ||
335 | return 0; | ||
336 | } | ||
337 | |||
265 | static struct drm_encoder *radeon_best_single_encoder(struct drm_connector *connector) | 338 | static struct drm_encoder *radeon_best_single_encoder(struct drm_connector *connector) |
266 | { | 339 | { |
267 | int enc_id = connector->encoder_ids[0]; | 340 | int enc_id = connector->encoder_ids[0]; |
@@ -661,22 +734,20 @@ static void radeon_fixup_lvds_native_mode(struct drm_encoder *encoder, | |||
661 | 734 | ||
662 | static int radeon_lvds_get_modes(struct drm_connector *connector) | 735 | static int radeon_lvds_get_modes(struct drm_connector *connector) |
663 | { | 736 | { |
664 | struct radeon_connector *radeon_connector = to_radeon_connector(connector); | ||
665 | struct drm_encoder *encoder; | 737 | struct drm_encoder *encoder; |
666 | int ret = 0; | 738 | int ret = 0; |
667 | struct drm_display_mode *mode; | 739 | struct drm_display_mode *mode; |
668 | 740 | ||
669 | if (radeon_connector->ddc_bus) { | 741 | radeon_connector_get_edid(connector); |
670 | ret = radeon_ddc_get_modes(radeon_connector); | 742 | ret = radeon_ddc_get_modes(connector); |
671 | if (ret > 0) { | 743 | if (ret > 0) { |
672 | encoder = radeon_best_single_encoder(connector); | 744 | encoder = radeon_best_single_encoder(connector); |
673 | if (encoder) { | 745 | if (encoder) { |
674 | radeon_fixup_lvds_native_mode(encoder, connector); | 746 | radeon_fixup_lvds_native_mode(encoder, connector); |
675 | /* add scaled modes */ | 747 | /* add scaled modes */ |
676 | radeon_add_common_modes(encoder, connector); | 748 | radeon_add_common_modes(encoder, connector); |
677 | } | ||
678 | return ret; | ||
679 | } | 749 | } |
750 | return ret; | ||
680 | } | 751 | } |
681 | 752 | ||
682 | encoder = radeon_best_single_encoder(connector); | 753 | encoder = radeon_best_single_encoder(connector); |
@@ -751,16 +822,9 @@ radeon_lvds_detect(struct drm_connector *connector, bool force) | |||
751 | } | 822 | } |
752 | 823 | ||
753 | /* check for edid as well */ | 824 | /* check for edid as well */ |
825 | radeon_connector_get_edid(connector); | ||
754 | if (radeon_connector->edid) | 826 | if (radeon_connector->edid) |
755 | ret = connector_status_connected; | 827 | ret = connector_status_connected; |
756 | else { | ||
757 | if (radeon_connector->ddc_bus) { | ||
758 | radeon_connector->edid = drm_get_edid(&radeon_connector->base, | ||
759 | &radeon_connector->ddc_bus->adapter); | ||
760 | if (radeon_connector->edid) | ||
761 | ret = connector_status_connected; | ||
762 | } | ||
763 | } | ||
764 | /* check acpi lid status ??? */ | 828 | /* check acpi lid status ??? */ |
765 | 829 | ||
766 | radeon_connector_update_scratch_regs(connector, ret); | 830 | radeon_connector_update_scratch_regs(connector, ret); |
@@ -773,8 +837,7 @@ static void radeon_connector_destroy(struct drm_connector *connector) | |||
773 | { | 837 | { |
774 | struct radeon_connector *radeon_connector = to_radeon_connector(connector); | 838 | struct radeon_connector *radeon_connector = to_radeon_connector(connector); |
775 | 839 | ||
776 | if (radeon_connector->edid) | 840 | radeon_connector_free_edid(connector); |
777 | kfree(radeon_connector->edid); | ||
778 | kfree(radeon_connector->con_priv); | 841 | kfree(radeon_connector->con_priv); |
779 | drm_connector_unregister(connector); | 842 | drm_connector_unregister(connector); |
780 | drm_connector_cleanup(connector); | 843 | drm_connector_cleanup(connector); |
@@ -833,10 +896,10 @@ static const struct drm_connector_funcs radeon_lvds_connector_funcs = { | |||
833 | 896 | ||
834 | static int radeon_vga_get_modes(struct drm_connector *connector) | 897 | static int radeon_vga_get_modes(struct drm_connector *connector) |
835 | { | 898 | { |
836 | struct radeon_connector *radeon_connector = to_radeon_connector(connector); | ||
837 | int ret; | 899 | int ret; |
838 | 900 | ||
839 | ret = radeon_ddc_get_modes(radeon_connector); | 901 | radeon_connector_get_edid(connector); |
902 | ret = radeon_ddc_get_modes(connector); | ||
840 | 903 | ||
841 | radeon_get_native_mode(connector); | 904 | radeon_get_native_mode(connector); |
842 | 905 | ||
@@ -881,28 +944,26 @@ radeon_vga_detect(struct drm_connector *connector, bool force) | |||
881 | dret = radeon_ddc_probe(radeon_connector, false); | 944 | dret = radeon_ddc_probe(radeon_connector, false); |
882 | if (dret) { | 945 | if (dret) { |
883 | radeon_connector->detected_by_load = false; | 946 | radeon_connector->detected_by_load = false; |
884 | if (radeon_connector->edid) { | 947 | radeon_connector_free_edid(connector); |
885 | kfree(radeon_connector->edid); | 948 | radeon_connector_get_edid(connector); |
886 | radeon_connector->edid = NULL; | ||
887 | } | ||
888 | radeon_connector->edid = drm_get_edid(&radeon_connector->base, &radeon_connector->ddc_bus->adapter); | ||
889 | 949 | ||
890 | if (!radeon_connector->edid) { | 950 | if (!radeon_connector->edid) { |
891 | DRM_ERROR("%s: probed a monitor but no|invalid EDID\n", | 951 | DRM_ERROR("%s: probed a monitor but no|invalid EDID\n", |
892 | connector->name); | 952 | connector->name); |
893 | ret = connector_status_connected; | 953 | ret = connector_status_connected; |
894 | } else { | 954 | } else { |
895 | radeon_connector->use_digital = !!(radeon_connector->edid->input & DRM_EDID_INPUT_DIGITAL); | 955 | radeon_connector->use_digital = |
956 | !!(radeon_connector->edid->input & DRM_EDID_INPUT_DIGITAL); | ||
896 | 957 | ||
897 | /* some oems have boards with separate digital and analog connectors | 958 | /* some oems have boards with separate digital and analog connectors |
898 | * with a shared ddc line (often vga + hdmi) | 959 | * with a shared ddc line (often vga + hdmi) |
899 | */ | 960 | */ |
900 | if (radeon_connector->use_digital && radeon_connector->shared_ddc) { | 961 | if (radeon_connector->use_digital && radeon_connector->shared_ddc) { |
901 | kfree(radeon_connector->edid); | 962 | radeon_connector_free_edid(connector); |
902 | radeon_connector->edid = NULL; | ||
903 | ret = connector_status_disconnected; | 963 | ret = connector_status_disconnected; |
904 | } else | 964 | } else { |
905 | ret = connector_status_connected; | 965 | ret = connector_status_connected; |
966 | } | ||
906 | } | 967 | } |
907 | } else { | 968 | } else { |
908 | 969 | ||
@@ -1094,18 +1155,16 @@ radeon_dvi_detect(struct drm_connector *connector, bool force) | |||
1094 | dret = radeon_ddc_probe(radeon_connector, false); | 1155 | dret = radeon_ddc_probe(radeon_connector, false); |
1095 | if (dret) { | 1156 | if (dret) { |
1096 | radeon_connector->detected_by_load = false; | 1157 | radeon_connector->detected_by_load = false; |
1097 | if (radeon_connector->edid) { | 1158 | radeon_connector_free_edid(connector); |
1098 | kfree(radeon_connector->edid); | 1159 | radeon_connector_get_edid(connector); |
1099 | radeon_connector->edid = NULL; | ||
1100 | } | ||
1101 | radeon_connector->edid = drm_get_edid(&radeon_connector->base, &radeon_connector->ddc_bus->adapter); | ||
1102 | 1160 | ||
1103 | if (!radeon_connector->edid) { | 1161 | if (!radeon_connector->edid) { |
1104 | DRM_ERROR("%s: probed a monitor but no|invalid EDID\n", | 1162 | DRM_ERROR("%s: probed a monitor but no|invalid EDID\n", |
1105 | connector->name); | 1163 | connector->name); |
1106 | /* rs690 seems to have a problem with connectors not existing and always | 1164 | /* rs690 seems to have a problem with connectors not existing and always |
1107 | * return a block of 0's. If we see this just stop polling on this output */ | 1165 | * return a block of 0's. If we see this just stop polling on this output */ |
1108 | if ((rdev->family == CHIP_RS690 || rdev->family == CHIP_RS740) && radeon_connector->base.null_edid_counter) { | 1166 | if ((rdev->family == CHIP_RS690 || rdev->family == CHIP_RS740) && |
1167 | radeon_connector->base.null_edid_counter) { | ||
1109 | ret = connector_status_disconnected; | 1168 | ret = connector_status_disconnected; |
1110 | DRM_ERROR("%s: detected RS690 floating bus bug, stopping ddc detect\n", | 1169 | DRM_ERROR("%s: detected RS690 floating bus bug, stopping ddc detect\n", |
1111 | connector->name); | 1170 | connector->name); |
@@ -1115,18 +1174,18 @@ radeon_dvi_detect(struct drm_connector *connector, bool force) | |||
1115 | broken_edid = true; /* defer use_digital to later */ | 1174 | broken_edid = true; /* defer use_digital to later */ |
1116 | } | 1175 | } |
1117 | } else { | 1176 | } else { |
1118 | radeon_connector->use_digital = !!(radeon_connector->edid->input & DRM_EDID_INPUT_DIGITAL); | 1177 | radeon_connector->use_digital = |
1178 | !!(radeon_connector->edid->input & DRM_EDID_INPUT_DIGITAL); | ||
1119 | 1179 | ||
1120 | /* some oems have boards with separate digital and analog connectors | 1180 | /* some oems have boards with separate digital and analog connectors |
1121 | * with a shared ddc line (often vga + hdmi) | 1181 | * with a shared ddc line (often vga + hdmi) |
1122 | */ | 1182 | */ |
1123 | if ((!radeon_connector->use_digital) && radeon_connector->shared_ddc) { | 1183 | if ((!radeon_connector->use_digital) && radeon_connector->shared_ddc) { |
1124 | kfree(radeon_connector->edid); | 1184 | radeon_connector_free_edid(connector); |
1125 | radeon_connector->edid = NULL; | ||
1126 | ret = connector_status_disconnected; | 1185 | ret = connector_status_disconnected; |
1127 | } else | 1186 | } else { |
1128 | ret = connector_status_connected; | 1187 | ret = connector_status_connected; |
1129 | 1188 | } | |
1130 | /* This gets complicated. We have boards with VGA + HDMI with a | 1189 | /* This gets complicated. We have boards with VGA + HDMI with a |
1131 | * shared DDC line and we have boards with DVI-D + HDMI with a shared | 1190 | * shared DDC line and we have boards with DVI-D + HDMI with a shared |
1132 | * DDC line. The latter is more complex because with DVI<->HDMI adapters | 1191 | * DDC line. The latter is more complex because with DVI<->HDMI adapters |
@@ -1146,8 +1205,7 @@ radeon_dvi_detect(struct drm_connector *connector, bool force) | |||
1146 | if (list_connector->connector_type != DRM_MODE_CONNECTOR_VGA) { | 1205 | if (list_connector->connector_type != DRM_MODE_CONNECTOR_VGA) { |
1147 | /* hpd is our only option in this case */ | 1206 | /* hpd is our only option in this case */ |
1148 | if (!radeon_hpd_sense(rdev, radeon_connector->hpd.hpd)) { | 1207 | if (!radeon_hpd_sense(rdev, radeon_connector->hpd.hpd)) { |
1149 | kfree(radeon_connector->edid); | 1208 | radeon_connector_free_edid(connector); |
1150 | radeon_connector->edid = NULL; | ||
1151 | ret = connector_status_disconnected; | 1209 | ret = connector_status_disconnected; |
1152 | } | 1210 | } |
1153 | } | 1211 | } |
@@ -1356,7 +1414,8 @@ static int radeon_dp_get_modes(struct drm_connector *connector) | |||
1356 | if (!radeon_dig_connector->edp_on) | 1414 | if (!radeon_dig_connector->edp_on) |
1357 | atombios_set_edp_panel_power(connector, | 1415 | atombios_set_edp_panel_power(connector, |
1358 | ATOM_TRANSMITTER_ACTION_POWER_ON); | 1416 | ATOM_TRANSMITTER_ACTION_POWER_ON); |
1359 | ret = radeon_ddc_get_modes(radeon_connector); | 1417 | radeon_connector_get_edid(connector); |
1418 | ret = radeon_ddc_get_modes(connector); | ||
1360 | if (!radeon_dig_connector->edp_on) | 1419 | if (!radeon_dig_connector->edp_on) |
1361 | atombios_set_edp_panel_power(connector, | 1420 | atombios_set_edp_panel_power(connector, |
1362 | ATOM_TRANSMITTER_ACTION_POWER_OFF); | 1421 | ATOM_TRANSMITTER_ACTION_POWER_OFF); |
@@ -1367,7 +1426,8 @@ static int radeon_dp_get_modes(struct drm_connector *connector) | |||
1367 | if (encoder) | 1426 | if (encoder) |
1368 | radeon_atom_ext_encoder_setup_ddc(encoder); | 1427 | radeon_atom_ext_encoder_setup_ddc(encoder); |
1369 | } | 1428 | } |
1370 | ret = radeon_ddc_get_modes(radeon_connector); | 1429 | radeon_connector_get_edid(connector); |
1430 | ret = radeon_ddc_get_modes(connector); | ||
1371 | } | 1431 | } |
1372 | 1432 | ||
1373 | if (ret > 0) { | 1433 | if (ret > 0) { |
@@ -1400,7 +1460,8 @@ static int radeon_dp_get_modes(struct drm_connector *connector) | |||
1400 | if (encoder) | 1460 | if (encoder) |
1401 | radeon_atom_ext_encoder_setup_ddc(encoder); | 1461 | radeon_atom_ext_encoder_setup_ddc(encoder); |
1402 | } | 1462 | } |
1403 | ret = radeon_ddc_get_modes(radeon_connector); | 1463 | radeon_connector_get_edid(connector); |
1464 | ret = radeon_ddc_get_modes(connector); | ||
1404 | 1465 | ||
1405 | radeon_get_native_mode(connector); | 1466 | radeon_get_native_mode(connector); |
1406 | } | 1467 | } |
@@ -1493,10 +1554,7 @@ radeon_dp_detect(struct drm_connector *connector, bool force) | |||
1493 | goto out; | 1554 | goto out; |
1494 | } | 1555 | } |
1495 | 1556 | ||
1496 | if (radeon_connector->edid) { | 1557 | radeon_connector_free_edid(connector); |
1497 | kfree(radeon_connector->edid); | ||
1498 | radeon_connector->edid = NULL; | ||
1499 | } | ||
1500 | 1558 | ||
1501 | if ((connector->connector_type == DRM_MODE_CONNECTOR_eDP) || | 1559 | if ((connector->connector_type == DRM_MODE_CONNECTOR_eDP) || |
1502 | (connector->connector_type == DRM_MODE_CONNECTOR_LVDS)) { | 1560 | (connector->connector_type == DRM_MODE_CONNECTOR_LVDS)) { |
diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c index bf25061c8ac4..004f30c170f6 100644 --- a/drivers/gpu/drm/radeon/radeon_display.c +++ b/drivers/gpu/drm/radeon/radeon_display.c | |||
@@ -823,64 +823,6 @@ static bool radeon_setup_enc_conn(struct drm_device *dev) | |||
823 | return ret; | 823 | return ret; |
824 | } | 824 | } |
825 | 825 | ||
826 | int radeon_ddc_get_modes(struct radeon_connector *radeon_connector) | ||
827 | { | ||
828 | struct drm_device *dev = radeon_connector->base.dev; | ||
829 | struct radeon_device *rdev = dev->dev_private; | ||
830 | int ret = 0; | ||
831 | |||
832 | /* don't leak the edid if we already fetched it in detect() */ | ||
833 | if (radeon_connector->edid) | ||
834 | goto got_edid; | ||
835 | |||
836 | /* on hw with routers, select right port */ | ||
837 | if (radeon_connector->router.ddc_valid) | ||
838 | radeon_router_select_ddc_port(radeon_connector); | ||
839 | |||
840 | if (radeon_connector_encoder_get_dp_bridge_encoder_id(&radeon_connector->base) != | ||
841 | ENCODER_OBJECT_ID_NONE) { | ||
842 | if (radeon_connector->ddc_bus->has_aux) | ||
843 | radeon_connector->edid = drm_get_edid(&radeon_connector->base, | ||
844 | &radeon_connector->ddc_bus->aux.ddc); | ||
845 | } else if ((radeon_connector->base.connector_type == DRM_MODE_CONNECTOR_DisplayPort) || | ||
846 | (radeon_connector->base.connector_type == DRM_MODE_CONNECTOR_eDP)) { | ||
847 | struct radeon_connector_atom_dig *dig = radeon_connector->con_priv; | ||
848 | |||
849 | if ((dig->dp_sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT || | ||
850 | dig->dp_sink_type == CONNECTOR_OBJECT_ID_eDP) && | ||
851 | radeon_connector->ddc_bus->has_aux) | ||
852 | radeon_connector->edid = drm_get_edid(&radeon_connector->base, | ||
853 | &radeon_connector->ddc_bus->aux.ddc); | ||
854 | else if (radeon_connector->ddc_bus && !radeon_connector->edid) | ||
855 | radeon_connector->edid = drm_get_edid(&radeon_connector->base, | ||
856 | &radeon_connector->ddc_bus->adapter); | ||
857 | } else { | ||
858 | if (radeon_connector->ddc_bus && !radeon_connector->edid) | ||
859 | radeon_connector->edid = drm_get_edid(&radeon_connector->base, | ||
860 | &radeon_connector->ddc_bus->adapter); | ||
861 | } | ||
862 | |||
863 | if (!radeon_connector->edid) { | ||
864 | if (rdev->is_atom_bios) { | ||
865 | /* some laptops provide a hardcoded edid in rom for LCDs */ | ||
866 | if (((radeon_connector->base.connector_type == DRM_MODE_CONNECTOR_LVDS) || | ||
867 | (radeon_connector->base.connector_type == DRM_MODE_CONNECTOR_eDP))) | ||
868 | radeon_connector->edid = radeon_bios_get_hardcoded_edid(rdev); | ||
869 | } else | ||
870 | /* some servers provide a hardcoded edid in rom for KVMs */ | ||
871 | radeon_connector->edid = radeon_bios_get_hardcoded_edid(rdev); | ||
872 | } | ||
873 | if (radeon_connector->edid) { | ||
874 | got_edid: | ||
875 | drm_mode_connector_update_edid_property(&radeon_connector->base, radeon_connector->edid); | ||
876 | ret = drm_add_edid_modes(&radeon_connector->base, radeon_connector->edid); | ||
877 | drm_edid_to_eld(&radeon_connector->base, radeon_connector->edid); | ||
878 | return ret; | ||
879 | } | ||
880 | drm_mode_connector_update_edid_property(&radeon_connector->base, NULL); | ||
881 | return 0; | ||
882 | } | ||
883 | |||
884 | /* avivo */ | 826 | /* avivo */ |
885 | 827 | ||
886 | /** | 828 | /** |
diff --git a/drivers/gpu/drm/radeon/radeon_mode.h b/drivers/gpu/drm/radeon/radeon_mode.h index 0592ddb0904b..9c2bfcd3576e 100644 --- a/drivers/gpu/drm/radeon/radeon_mode.h +++ b/drivers/gpu/drm/radeon/radeon_mode.h | |||
@@ -738,7 +738,6 @@ extern void radeon_i2c_put_byte(struct radeon_i2c_chan *i2c, | |||
738 | extern void radeon_router_select_ddc_port(struct radeon_connector *radeon_connector); | 738 | extern void radeon_router_select_ddc_port(struct radeon_connector *radeon_connector); |
739 | extern void radeon_router_select_cd_port(struct radeon_connector *radeon_connector); | 739 | extern void radeon_router_select_cd_port(struct radeon_connector *radeon_connector); |
740 | extern bool radeon_ddc_probe(struct radeon_connector *radeon_connector, bool use_aux); | 740 | extern bool radeon_ddc_probe(struct radeon_connector *radeon_connector, bool use_aux); |
741 | extern int radeon_ddc_get_modes(struct radeon_connector *radeon_connector); | ||
742 | 741 | ||
743 | extern struct drm_encoder *radeon_best_encoder(struct drm_connector *connector); | 742 | extern struct drm_encoder *radeon_best_encoder(struct drm_connector *connector); |
744 | 743 | ||