Lines Matching full:connector
40 static int radeon_dp_handle_hpd(struct drm_connector *connector) in radeon_dp_handle_hpd() argument
42 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_dp_handle_hpd()
50 void radeon_connector_hotplug(struct drm_connector *connector) in radeon_connector_hotplug() argument
52 struct drm_device *dev = connector->dev; in radeon_connector_hotplug()
54 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_connector_hotplug()
56 if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) { in radeon_connector_hotplug()
63 radeon_dp_handle_hpd(connector); in radeon_connector_hotplug()
67 /* bail if the connector does not have hpd pin, e.g., in radeon_connector_hotplug()
75 /* if the connector is already off, don't turn it back on */ in radeon_connector_hotplug()
77 if (connector->dpms != DRM_MODE_DPMS_ON) in radeon_connector_hotplug()
81 if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) { in radeon_connector_hotplug()
101 /* Turn the connector off and back on immediately, which in radeon_connector_hotplug()
104 drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF); in radeon_connector_hotplug()
105 drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON); in radeon_connector_hotplug()
120 int radeon_get_monitor_bpc(struct drm_connector *connector) in radeon_get_monitor_bpc() argument
122 struct drm_device *dev = connector->dev; in radeon_get_monitor_bpc()
124 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_get_monitor_bpc()
129 switch (connector->connector_type) { in radeon_get_monitor_bpc()
133 if (drm_detect_hdmi_monitor(radeon_connector_edid(connector))) { in radeon_get_monitor_bpc()
134 if (connector->display_info.bpc) in radeon_get_monitor_bpc()
135 bpc = connector->display_info.bpc; in radeon_get_monitor_bpc()
141 if (drm_detect_hdmi_monitor(radeon_connector_edid(connector))) { in radeon_get_monitor_bpc()
142 if (connector->display_info.bpc) in radeon_get_monitor_bpc()
143 bpc = connector->display_info.bpc; in radeon_get_monitor_bpc()
150 drm_detect_hdmi_monitor(radeon_connector_edid(connector))) { in radeon_get_monitor_bpc()
151 if (connector->display_info.bpc) in radeon_get_monitor_bpc()
152 bpc = connector->display_info.bpc; in radeon_get_monitor_bpc()
157 if (connector->display_info.bpc) in radeon_get_monitor_bpc()
158 bpc = connector->display_info.bpc; in radeon_get_monitor_bpc()
161 connector->helper_private; in radeon_get_monitor_bpc()
162 struct drm_encoder *encoder = connector_funcs->best_encoder(connector); in radeon_get_monitor_bpc()
174 if (drm_detect_hdmi_monitor(radeon_connector_edid(connector))) { in radeon_get_monitor_bpc()
178 connector->name, bpc); in radeon_get_monitor_bpc()
190 connector->name, bpc); in radeon_get_monitor_bpc()
195 if (connector->display_info.max_tmds_clock > 0) { in radeon_get_monitor_bpc()
196 /* mode_clock is clock in kHz for mode to be modeset on this connector */ in radeon_get_monitor_bpc()
200 max_tmds_clock = connector->display_info.max_tmds_clock; in radeon_get_monitor_bpc()
203 connector->name, mode_clock, max_tmds_clock); in radeon_get_monitor_bpc()
207 if ((connector->display_info.edid_hdmi_dc_modes & DRM_EDID_HDMI_DC_30) && in radeon_get_monitor_bpc()
214 connector->name, bpc); in radeon_get_monitor_bpc()
220 connector->name, bpc); in radeon_get_monitor_bpc()
226 connector->name); in radeon_get_monitor_bpc()
233 connector->name); in radeon_get_monitor_bpc()
238 connector->name, connector->display_info.bpc, bpc); in radeon_get_monitor_bpc()
244 radeon_connector_update_scratch_regs(struct drm_connector *connector, enum drm_connector_status sta… in radeon_connector_update_scratch_regs() argument
246 struct drm_device *dev = connector->dev; in radeon_connector_update_scratch_regs()
250 const struct drm_connector_helper_funcs *connector_funcs = connector->helper_private; in radeon_connector_update_scratch_regs()
253 best_encoder = connector_funcs->best_encoder(connector); in radeon_connector_update_scratch_regs()
255 drm_connector_for_each_possible_encoder(connector, encoder) { in radeon_connector_update_scratch_regs()
262 radeon_atombios_connected_scratch_regs(connector, encoder, connected); in radeon_connector_update_scratch_regs()
264 radeon_combios_connected_scratch_regs(connector, encoder, connected); in radeon_connector_update_scratch_regs()
268 static struct drm_encoder *radeon_find_encoder(struct drm_connector *connector, int encoder_type) in radeon_find_encoder() argument
272 drm_connector_for_each_possible_encoder(connector, encoder) { in radeon_find_encoder()
280 struct edid *radeon_connector_edid(struct drm_connector *connector) in radeon_connector_edid() argument
282 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_connector_edid()
283 struct drm_property_blob *edid_blob = connector->edid_blob_ptr; in radeon_connector_edid()
295 static void radeon_connector_get_edid(struct drm_connector *connector) in radeon_connector_get_edid() argument
297 struct drm_device *dev = connector->dev; in radeon_connector_get_edid()
299 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_connector_get_edid()
308 if ((radeon_connector_encoder_get_dp_bridge_encoder_id(connector) != in radeon_connector_get_edid()
311 radeon_connector->edid = drm_get_edid(connector, in radeon_connector_get_edid()
313 } else if ((connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) || in radeon_connector_get_edid()
314 (connector->connector_type == DRM_MODE_CONNECTOR_eDP)) { in radeon_connector_get_edid()
326 connector->connector_type == DRM_MODE_CONNECTOR_LVDS && in radeon_connector_get_edid()
344 if (((connector->connector_type == DRM_MODE_CONNECTOR_LVDS) || in radeon_connector_get_edid()
345 (connector->connector_type == DRM_MODE_CONNECTOR_eDP))) in radeon_connector_get_edid()
354 static void radeon_connector_free_edid(struct drm_connector *connector) in radeon_connector_free_edid() argument
356 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_connector_free_edid()
364 static int radeon_ddc_get_modes(struct drm_connector *connector) in radeon_ddc_get_modes() argument
366 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_ddc_get_modes()
370 drm_connector_update_edid_property(connector, radeon_connector->edid); in radeon_ddc_get_modes()
371 ret = drm_add_edid_modes(connector, radeon_connector->edid); in radeon_ddc_get_modes()
374 drm_connector_update_edid_property(connector, NULL); in radeon_ddc_get_modes()
378 static struct drm_encoder *radeon_best_single_encoder(struct drm_connector *connector) in radeon_best_single_encoder() argument
383 drm_connector_for_each_possible_encoder(connector, encoder) in radeon_best_single_encoder()
389 static void radeon_get_native_mode(struct drm_connector *connector) in radeon_get_native_mode() argument
391 struct drm_encoder *encoder = radeon_best_single_encoder(connector); in radeon_get_native_mode()
399 if (!list_empty(&connector->probed_modes)) { in radeon_get_native_mode()
401 list_first_entry(&connector->probed_modes, in radeon_get_native_mode()
417 radeon_connector_analog_encoder_conflict_solve(struct drm_connector *connector, in radeon_connector_analog_encoder_conflict_solve() argument
422 struct drm_device *dev = connector->dev; in radeon_connector_analog_encoder_conflict_solve()
429 if (conflict == connector) in radeon_connector_analog_encoder_conflict_solve()
447 connector->name); in radeon_connector_analog_encoder_conflict_solve()
452 connector->name); in radeon_connector_analog_encoder_conflict_solve()
496 static void radeon_add_common_modes(struct drm_encoder *encoder, struct drm_connector *connector) in radeon_add_common_modes() argument
543 drm_mode_probed_add(connector, mode); in radeon_add_common_modes()
547 static int radeon_connector_set_property(struct drm_connector *connector, struct drm_property *prop… in radeon_connector_set_property() argument
550 struct drm_device *dev = connector->dev; in radeon_connector_set_property()
559 /* need to find digital encoder on connector */ in radeon_connector_set_property()
560 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in radeon_connector_set_property()
578 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_connector_set_property()
579 /* need to find digital encoder on connector */ in radeon_connector_set_property()
580 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in radeon_connector_set_property()
593 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_connector_set_property()
594 /* need to find digital encoder on connector */ in radeon_connector_set_property()
595 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in radeon_connector_set_property()
608 /* need to find digital encoder on connector */ in radeon_connector_set_property()
609 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in radeon_connector_set_property()
622 /* need to find digital encoder on connector */ in radeon_connector_set_property()
623 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in radeon_connector_set_property()
636 /* need to find digital encoder on connector */ in radeon_connector_set_property()
637 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in radeon_connector_set_property()
650 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_TVDAC); in radeon_connector_set_property()
652 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_DAC); in radeon_connector_set_property()
675 to_radeon_connector(connector); in radeon_connector_set_property()
686 /* need to find digital encoder on connector */ in radeon_connector_set_property()
687 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in radeon_connector_set_property()
712 if (connector->encoder) in radeon_connector_set_property()
713 radeon_encoder = to_radeon_encoder(connector->encoder); in radeon_connector_set_property()
715 const struct drm_connector_helper_funcs *connector_funcs = connector->helper_private; in radeon_connector_set_property()
716 radeon_encoder = to_radeon_encoder(connector_funcs->best_encoder(connector)); in radeon_connector_set_property()
739 if (connector->encoder) in radeon_connector_set_property()
740 radeon_encoder = to_radeon_encoder(connector->encoder); in radeon_connector_set_property()
742 const struct drm_connector_helper_funcs *connector_funcs = connector->helper_private; in radeon_connector_set_property()
743 radeon_encoder = to_radeon_encoder(connector_funcs->best_encoder(connector)); in radeon_connector_set_property()
751 if (connector->encoder && connector->encoder->crtc) { in radeon_connector_set_property()
752 struct drm_crtc *crtc = connector->encoder->crtc; in radeon_connector_set_property()
769 struct drm_connector *connector) in radeon_fixup_lvds_native_mode() argument
776 list_for_each_entry_safe(mode, t, &connector->probed_modes, head) { in radeon_fixup_lvds_native_mode()
786 list_for_each_entry_safe(mode, t, &connector->probed_modes, head) { in radeon_fixup_lvds_native_mode()
803 static int radeon_lvds_get_modes(struct drm_connector *connector) in radeon_lvds_get_modes() argument
809 radeon_connector_get_edid(connector); in radeon_lvds_get_modes()
810 ret = radeon_ddc_get_modes(connector); in radeon_lvds_get_modes()
812 encoder = radeon_best_single_encoder(connector); in radeon_lvds_get_modes()
814 radeon_fixup_lvds_native_mode(encoder, connector); in radeon_lvds_get_modes()
816 radeon_add_common_modes(encoder, connector); in radeon_lvds_get_modes()
821 encoder = radeon_best_single_encoder(connector); in radeon_lvds_get_modes()
829 drm_mode_probed_add(connector, mode); in radeon_lvds_get_modes()
831 connector->display_info.width_mm = mode->width_mm; in radeon_lvds_get_modes()
832 connector->display_info.height_mm = mode->height_mm; in radeon_lvds_get_modes()
834 radeon_add_common_modes(encoder, connector); in radeon_lvds_get_modes()
840 static enum drm_mode_status radeon_lvds_mode_valid(struct drm_connector *connector, in radeon_lvds_mode_valid() argument
843 struct drm_encoder *encoder = radeon_best_single_encoder(connector); in radeon_lvds_mode_valid()
871 radeon_lvds_detect(struct drm_connector *connector, bool force) in radeon_lvds_detect() argument
873 struct drm_device *dev = connector->dev; in radeon_lvds_detect()
875 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_lvds_detect()
876 struct drm_encoder *encoder = radeon_best_single_encoder(connector); in radeon_lvds_detect()
881 r = pm_runtime_get_sync(connector->dev->dev); in radeon_lvds_detect()
883 pm_runtime_put_autosuspend(connector->dev->dev); in radeon_lvds_detect()
903 radeon_connector_get_edid(connector); in radeon_lvds_detect()
908 radeon_connector_update_scratch_regs(connector, ret); in radeon_lvds_detect()
911 pm_runtime_mark_last_busy(connector->dev->dev); in radeon_lvds_detect()
912 pm_runtime_put_autosuspend(connector->dev->dev); in radeon_lvds_detect()
918 static void radeon_connector_unregister(struct drm_connector *connector) in radeon_connector_unregister() argument
920 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_connector_unregister()
928 static void radeon_connector_destroy(struct drm_connector *connector) in radeon_connector_destroy() argument
930 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_connector_destroy()
932 radeon_connector_free_edid(connector); in radeon_connector_destroy()
934 drm_connector_unregister(connector); in radeon_connector_destroy()
935 drm_connector_cleanup(connector); in radeon_connector_destroy()
936 kfree(connector); in radeon_connector_destroy()
939 static int radeon_lvds_set_property(struct drm_connector *connector, in radeon_lvds_set_property() argument
943 struct drm_device *dev = connector->dev; in radeon_lvds_set_property()
951 if (connector->encoder) in radeon_lvds_set_property()
952 radeon_encoder = to_radeon_encoder(connector->encoder); in radeon_lvds_set_property()
954 const struct drm_connector_helper_funcs *connector_funcs = connector->helper_private; in radeon_lvds_set_property()
955 radeon_encoder = to_radeon_encoder(connector_funcs->best_encoder(connector)); in radeon_lvds_set_property()
990 static int radeon_vga_get_modes(struct drm_connector *connector) in radeon_vga_get_modes() argument
994 radeon_connector_get_edid(connector); in radeon_vga_get_modes()
995 ret = radeon_ddc_get_modes(connector); in radeon_vga_get_modes()
997 radeon_get_native_mode(connector); in radeon_vga_get_modes()
1002 static enum drm_mode_status radeon_vga_mode_valid(struct drm_connector *connector, in radeon_vga_mode_valid() argument
1005 struct drm_device *dev = connector->dev; in radeon_vga_mode_valid()
1017 radeon_vga_detect(struct drm_connector *connector, bool force) in radeon_vga_detect() argument
1019 struct drm_device *dev = connector->dev; in radeon_vga_detect()
1021 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_vga_detect()
1029 r = pm_runtime_get_sync(connector->dev->dev); in radeon_vga_detect()
1031 pm_runtime_put_autosuspend(connector->dev->dev); in radeon_vga_detect()
1036 encoder = radeon_best_single_encoder(connector); in radeon_vga_detect()
1044 radeon_connector_free_edid(connector); in radeon_vga_detect()
1045 radeon_connector_get_edid(connector); in radeon_vga_detect()
1049 connector->name); in radeon_vga_detect()
1059 radeon_connector_free_edid(connector); in radeon_vga_detect()
1073 ret = connector->status; in radeon_vga_detect()
1079 ret = encoder_funcs->detect(encoder, connector); in radeon_vga_detect()
1086 ret = radeon_connector_analog_encoder_conflict_solve(connector, encoder, ret, true); in radeon_vga_detect()
1098 radeon_connector_update_scratch_regs(connector, ret); in radeon_vga_detect()
1102 pm_runtime_mark_last_busy(connector->dev->dev); in radeon_vga_detect()
1103 pm_runtime_put_autosuspend(connector->dev->dev); in radeon_vga_detect()
1124 static int radeon_tv_get_modes(struct drm_connector *connector) in radeon_tv_get_modes() argument
1126 struct drm_device *dev = connector->dev; in radeon_tv_get_modes()
1131 encoder = radeon_best_single_encoder(connector); in radeon_tv_get_modes()
1138 radeon_add_common_modes(encoder, connector); in radeon_tv_get_modes()
1143 drm_mode_probed_add(connector, tv_mode); in radeon_tv_get_modes()
1148 static enum drm_mode_status radeon_tv_mode_valid(struct drm_connector *connector, in radeon_tv_mode_valid() argument
1157 radeon_tv_detect(struct drm_connector *connector, bool force) in radeon_tv_detect() argument
1161 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_tv_detect()
1169 r = pm_runtime_get_sync(connector->dev->dev); in radeon_tv_detect()
1171 pm_runtime_put_autosuspend(connector->dev->dev); in radeon_tv_detect()
1176 encoder = radeon_best_single_encoder(connector); in radeon_tv_detect()
1181 ret = encoder_funcs->detect(encoder, connector); in radeon_tv_detect()
1184 ret = radeon_connector_analog_encoder_conflict_solve(connector, encoder, ret, false); in radeon_tv_detect()
1185 radeon_connector_update_scratch_regs(connector, ret); in radeon_tv_detect()
1188 pm_runtime_mark_last_busy(connector->dev->dev); in radeon_tv_detect()
1189 pm_runtime_put_autosuspend(connector->dev->dev); in radeon_tv_detect()
1210 static bool radeon_check_hpd_status_unchanged(struct drm_connector *connector) in radeon_check_hpd_status_unchanged() argument
1212 struct drm_device *dev = connector->dev; in radeon_check_hpd_status_unchanged()
1214 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_check_hpd_status_unchanged()
1224 if (connector->status == status) in radeon_check_hpd_status_unchanged()
1236 * we need to find the DAC encoder object for this connector.
1240 * if its shared we have to set the other connector to disconnected.
1243 radeon_dvi_detect(struct drm_connector *connector, bool force) in radeon_dvi_detect() argument
1245 struct drm_device *dev = connector->dev; in radeon_dvi_detect()
1247 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_dvi_detect()
1255 r = pm_runtime_get_sync(connector->dev->dev); in radeon_dvi_detect()
1257 pm_runtime_put_autosuspend(connector->dev->dev); in radeon_dvi_detect()
1267 if (!force && radeon_check_hpd_status_unchanged(connector)) { in radeon_dvi_detect()
1268 ret = connector->status; in radeon_dvi_detect()
1280 connector->status != connector_status_connected) { in radeon_dvi_detect()
1290 radeon_connector_free_edid(connector); in radeon_dvi_detect()
1291 radeon_connector_get_edid(connector); in radeon_dvi_detect()
1295 connector->name); in radeon_dvi_detect()
1302 connector->name); in radeon_dvi_detect()
1316 radeon_connector_free_edid(connector); in radeon_dvi_detect()
1330 if (connector == list_connector) in radeon_dvi_detect()
1340 radeon_connector_free_edid(connector); in radeon_dvi_detect()
1354 if ((connector->connector_type == DRM_MODE_CONNECTOR_DVID) || in radeon_dvi_detect()
1355 (connector->connector_type == DRM_MODE_CONNECTOR_HDMIA)) in radeon_dvi_detect()
1364 ret = connector->status; in radeon_dvi_detect()
1370 drm_connector_for_each_possible_encoder(connector, encoder) { in radeon_dvi_detect()
1380 ret = encoder_funcs->detect(encoder, connector); in radeon_dvi_detect()
1391 lret = encoder_funcs->detect(encoder, connector); in radeon_dvi_detect()
1403 ret = radeon_connector_analog_encoder_conflict_solve(connector, encoder, ret, true); in radeon_dvi_detect()
1421 radeon_connector_update_scratch_regs(connector, ret); in radeon_dvi_detect()
1425 connector->helper_private; in radeon_dvi_detect()
1427 encoder = connector_funcs->best_encoder(connector); in radeon_dvi_detect()
1429 radeon_connector_get_edid(connector); in radeon_dvi_detect()
1430 radeon_audio_detect(connector, encoder, ret); in radeon_dvi_detect()
1436 pm_runtime_mark_last_busy(connector->dev->dev); in radeon_dvi_detect()
1437 pm_runtime_put_autosuspend(connector->dev->dev); in radeon_dvi_detect()
1444 static struct drm_encoder *radeon_dvi_encoder(struct drm_connector *connector) in radeon_dvi_encoder() argument
1446 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_dvi_encoder()
1449 drm_connector_for_each_possible_encoder(connector, encoder) { in radeon_dvi_encoder()
1464 drm_connector_for_each_possible_encoder(connector, encoder) in radeon_dvi_encoder()
1470 static void radeon_dvi_force(struct drm_connector *connector) in radeon_dvi_force() argument
1472 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_dvi_force()
1473 if (connector->force == DRM_FORCE_ON) in radeon_dvi_force()
1475 if (connector->force == DRM_FORCE_ON_DIGITAL) in radeon_dvi_force()
1479 static enum drm_mode_status radeon_dvi_mode_valid(struct drm_connector *connector, in radeon_dvi_mode_valid() argument
1482 struct drm_device *dev = connector->dev; in radeon_dvi_mode_valid()
1484 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_dvi_mode_valid()
1499 else if (ASIC_IS_DCE6(rdev) && drm_detect_hdmi_monitor(radeon_connector_edid(connector))) { in radeon_dvi_mode_valid()
1533 static int radeon_dp_get_modes(struct drm_connector *connector) in radeon_dp_get_modes() argument
1535 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_dp_get_modes()
1537 struct drm_encoder *encoder = radeon_best_single_encoder(connector); in radeon_dp_get_modes()
1540 if ((connector->connector_type == DRM_MODE_CONNECTOR_eDP) || in radeon_dp_get_modes()
1541 (connector->connector_type == DRM_MODE_CONNECTOR_LVDS)) { in radeon_dp_get_modes()
1544 if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) { in radeon_dp_get_modes()
1546 atombios_set_edp_panel_power(connector, in radeon_dp_get_modes()
1548 radeon_connector_get_edid(connector); in radeon_dp_get_modes()
1549 ret = radeon_ddc_get_modes(connector); in radeon_dp_get_modes()
1551 atombios_set_edp_panel_power(connector, in radeon_dp_get_modes()
1555 if (radeon_connector_encoder_get_dp_bridge_encoder_id(connector) != in radeon_dp_get_modes()
1560 radeon_connector_get_edid(connector); in radeon_dp_get_modes()
1561 ret = radeon_ddc_get_modes(connector); in radeon_dp_get_modes()
1566 radeon_fixup_lvds_native_mode(encoder, connector); in radeon_dp_get_modes()
1568 radeon_add_common_modes(encoder, connector); in radeon_dp_get_modes()
1580 drm_mode_probed_add(connector, mode); in radeon_dp_get_modes()
1582 connector->display_info.width_mm = mode->width_mm; in radeon_dp_get_modes()
1583 connector->display_info.height_mm = mode->height_mm; in radeon_dp_get_modes()
1585 radeon_add_common_modes(encoder, connector); in radeon_dp_get_modes()
1589 if (radeon_connector_encoder_get_dp_bridge_encoder_id(connector) != in radeon_dp_get_modes()
1594 radeon_connector_get_edid(connector); in radeon_dp_get_modes()
1595 ret = radeon_ddc_get_modes(connector); in radeon_dp_get_modes()
1597 radeon_get_native_mode(connector); in radeon_dp_get_modes()
1603 u16 radeon_connector_encoder_get_dp_bridge_encoder_id(struct drm_connector *connector) in radeon_connector_encoder_get_dp_bridge_encoder_id() argument
1608 drm_connector_for_each_possible_encoder(connector, encoder) { in radeon_connector_encoder_get_dp_bridge_encoder_id()
1623 static bool radeon_connector_encoder_is_hbr2(struct drm_connector *connector) in radeon_connector_encoder_is_hbr2() argument
1629 drm_connector_for_each_possible_encoder(connector, encoder) { in radeon_connector_encoder_is_hbr2()
1638 bool radeon_connector_is_dp12_capable(struct drm_connector *connector) in radeon_connector_is_dp12_capable() argument
1640 struct drm_device *dev = connector->dev; in radeon_connector_is_dp12_capable()
1645 radeon_connector_encoder_is_hbr2(connector)) { in radeon_connector_is_dp12_capable()
1653 radeon_dp_detect(struct drm_connector *connector, bool force) in radeon_dp_detect() argument
1655 struct drm_device *dev = connector->dev; in radeon_dp_detect()
1657 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_dp_detect()
1660 struct drm_encoder *encoder = radeon_best_single_encoder(connector); in radeon_dp_detect()
1667 r = pm_runtime_get_sync(connector->dev->dev); in radeon_dp_detect()
1669 pm_runtime_put_autosuspend(connector->dev->dev); in radeon_dp_detect()
1674 if (!force && radeon_check_hpd_status_unchanged(connector)) { in radeon_dp_detect()
1675 ret = connector->status; in radeon_dp_detect()
1679 radeon_connector_free_edid(connector); in radeon_dp_detect()
1681 if ((connector->connector_type == DRM_MODE_CONNECTOR_eDP) || in radeon_dp_detect()
1682 (connector->connector_type == DRM_MODE_CONNECTOR_LVDS)) { in radeon_dp_detect()
1699 atombios_set_edp_panel_power(connector, in radeon_dp_detect()
1704 atombios_set_edp_panel_power(connector, in radeon_dp_detect()
1706 } else if (radeon_connector_encoder_get_dp_bridge_encoder_id(connector) != in radeon_dp_detect()
1721 ret = encoder_funcs->detect(encoder, connector); in radeon_dp_detect()
1751 radeon_connector_update_scratch_regs(connector, ret); in radeon_dp_detect()
1754 radeon_connector_get_edid(connector); in radeon_dp_detect()
1755 radeon_audio_detect(connector, encoder, ret); in radeon_dp_detect()
1760 pm_runtime_mark_last_busy(connector->dev->dev); in radeon_dp_detect()
1761 pm_runtime_put_autosuspend(connector->dev->dev); in radeon_dp_detect()
1767 static enum drm_mode_status radeon_dp_mode_valid(struct drm_connector *connector, in radeon_dp_mode_valid() argument
1770 struct drm_device *dev = connector->dev; in radeon_dp_mode_valid()
1772 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_dp_mode_valid()
1777 if ((connector->connector_type == DRM_MODE_CONNECTOR_eDP) || in radeon_dp_mode_valid()
1778 (connector->connector_type == DRM_MODE_CONNECTOR_LVDS)) { in radeon_dp_mode_valid()
1779 struct drm_encoder *encoder = radeon_best_single_encoder(connector); in radeon_dp_mode_valid()
1805 return radeon_dp_mode_valid_helper(connector, mode); in radeon_dp_mode_valid()
1807 if (ASIC_IS_DCE6(rdev) && drm_detect_hdmi_monitor(radeon_connector_edid(connector))) { in radeon_dp_mode_valid()
1869 struct drm_connector *connector; in radeon_add_atom_connector() local
1883 /* if the user selected tv=0 don't try and add the connector */ in radeon_add_atom_connector()
1891 list_for_each_entry(connector, &dev->mode_config.connector_list, head) { in radeon_add_atom_connector()
1892 radeon_connector = to_radeon_connector(connector); in radeon_add_atom_connector()
1929 connector = &radeon_connector->base; in radeon_add_atom_connector()
1969 connector->interlace_allowed = true; in radeon_add_atom_connector()
1970 connector->doublescan_allowed = true; in radeon_add_atom_connector()
2024 connector->interlace_allowed = true; in radeon_add_atom_connector()
2026 connector->doublescan_allowed = true; in radeon_add_atom_connector()
2028 connector->doublescan_allowed = false; in radeon_add_atom_connector()
2048 connector->interlace_allowed = false; in radeon_add_atom_connector()
2049 connector->doublescan_allowed = false; in radeon_add_atom_connector()
2081 connector->interlace_allowed = true; in radeon_add_atom_connector()
2082 connector->doublescan_allowed = true; in radeon_add_atom_connector()
2111 connector->interlace_allowed = true; in radeon_add_atom_connector()
2112 connector->doublescan_allowed = true; in radeon_add_atom_connector()
2170 connector->interlace_allowed = true; in radeon_add_atom_connector()
2172 connector->doublescan_allowed = true; in radeon_add_atom_connector()
2174 connector->doublescan_allowed = false; in radeon_add_atom_connector()
2226 connector->interlace_allowed = true; in radeon_add_atom_connector()
2228 connector->doublescan_allowed = true; in radeon_add_atom_connector()
2230 connector->doublescan_allowed = false; in radeon_add_atom_connector()
2283 connector->interlace_allowed = true; in radeon_add_atom_connector()
2285 connector->doublescan_allowed = false; in radeon_add_atom_connector()
2311 connector->interlace_allowed = false; in radeon_add_atom_connector()
2312 connector->doublescan_allowed = false; in radeon_add_atom_connector()
2331 connector->interlace_allowed = false; in radeon_add_atom_connector()
2332 connector->doublescan_allowed = false; in radeon_add_atom_connector()
2356 connector->interlace_allowed = false; in radeon_add_atom_connector()
2357 connector->doublescan_allowed = false; in radeon_add_atom_connector()
2364 connector->polled = DRM_CONNECTOR_POLL_CONNECT | in radeon_add_atom_connector()
2368 connector->polled = DRM_CONNECTOR_POLL_HPD; in radeon_add_atom_connector()
2370 connector->display_info.subpixel_order = subpixel_order; in radeon_add_atom_connector()
2371 drm_connector_register(connector); in radeon_add_atom_connector()
2379 drm_connector_cleanup(connector); in radeon_add_atom_connector()
2380 kfree(connector); in radeon_add_atom_connector()
2393 struct drm_connector *connector; in radeon_add_legacy_connector() local
2401 /* if the user selected tv=0 don't try and add the connector */ in radeon_add_legacy_connector()
2409 list_for_each_entry(connector, &dev->mode_config.connector_list, head) { in radeon_add_legacy_connector()
2410 radeon_connector = to_radeon_connector(connector); in radeon_add_legacy_connector()
2421 connector = &radeon_connector->base; in radeon_add_legacy_connector()
2448 connector->interlace_allowed = true; in radeon_add_legacy_connector()
2449 connector->doublescan_allowed = true; in radeon_add_legacy_connector()
2470 connector->interlace_allowed = true; in radeon_add_legacy_connector()
2471 connector->doublescan_allowed = true; in radeon_add_legacy_connector()
2494 connector->interlace_allowed = true; in radeon_add_legacy_connector()
2496 connector->doublescan_allowed = true; in radeon_add_legacy_connector()
2498 connector->doublescan_allowed = false; in radeon_add_legacy_connector()
2524 connector->interlace_allowed = false; in radeon_add_legacy_connector()
2525 connector->doublescan_allowed = false; in radeon_add_legacy_connector()
2544 connector->interlace_allowed = false; in radeon_add_legacy_connector()
2545 connector->doublescan_allowed = false; in radeon_add_legacy_connector()
2551 connector->polled = DRM_CONNECTOR_POLL_CONNECT | in radeon_add_legacy_connector()
2555 connector->polled = DRM_CONNECTOR_POLL_HPD; in radeon_add_legacy_connector()
2557 connector->display_info.subpixel_order = subpixel_order; in radeon_add_legacy_connector()
2558 drm_connector_register(connector); in radeon_add_legacy_connector()
2564 struct drm_connector *connector; in radeon_setup_mst_connector() local
2573 list_for_each_entry(connector, &dev->mode_config.connector_list, head) { in radeon_setup_mst_connector()
2576 radeon_connector = to_radeon_connector(connector); in radeon_setup_mst_connector()
2578 if (connector->connector_type != DRM_MODE_CONNECTOR_DisplayPort) in radeon_setup_mst_connector()