Lines Matching full:connector

40 void radeon_connector_hotplug(struct drm_connector *connector)  in radeon_connector_hotplug()  argument
42 struct drm_device *dev = connector->dev; in radeon_connector_hotplug()
44 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_connector_hotplug()
46 /* bail if the connector does not have hpd pin, e.g., in radeon_connector_hotplug()
54 /* if the connector is already off, don't turn it back on */ in radeon_connector_hotplug()
56 if (connector->dpms != DRM_MODE_DPMS_ON) in radeon_connector_hotplug()
60 if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) { in radeon_connector_hotplug()
80 /* Turn the connector off and back on immediately, which in radeon_connector_hotplug()
83 drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF); in radeon_connector_hotplug()
84 drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON); in radeon_connector_hotplug()
99 int radeon_get_monitor_bpc(struct drm_connector *connector) in radeon_get_monitor_bpc() argument
101 struct drm_device *dev = connector->dev; in radeon_get_monitor_bpc()
103 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_get_monitor_bpc()
108 switch (connector->connector_type) { in radeon_get_monitor_bpc()
112 if (drm_detect_hdmi_monitor(radeon_connector_edid(connector))) { in radeon_get_monitor_bpc()
113 if (connector->display_info.bpc) in radeon_get_monitor_bpc()
114 bpc = connector->display_info.bpc; in radeon_get_monitor_bpc()
120 if (drm_detect_hdmi_monitor(radeon_connector_edid(connector))) { in radeon_get_monitor_bpc()
121 if (connector->display_info.bpc) in radeon_get_monitor_bpc()
122 bpc = connector->display_info.bpc; in radeon_get_monitor_bpc()
129 drm_detect_hdmi_monitor(radeon_connector_edid(connector))) { in radeon_get_monitor_bpc()
130 if (connector->display_info.bpc) in radeon_get_monitor_bpc()
131 bpc = connector->display_info.bpc; in radeon_get_monitor_bpc()
136 if (connector->display_info.bpc) in radeon_get_monitor_bpc()
137 bpc = connector->display_info.bpc; in radeon_get_monitor_bpc()
140 connector->helper_private; in radeon_get_monitor_bpc()
141 struct drm_encoder *encoder = connector_funcs->best_encoder(connector); in radeon_get_monitor_bpc()
153 if (drm_detect_hdmi_monitor(radeon_connector_edid(connector))) { in radeon_get_monitor_bpc()
157 connector->name, bpc); in radeon_get_monitor_bpc()
169 connector->name, bpc); in radeon_get_monitor_bpc()
174 if (connector->display_info.max_tmds_clock > 0) { in radeon_get_monitor_bpc()
175 /* mode_clock is clock in kHz for mode to be modeset on this connector */ in radeon_get_monitor_bpc()
179 max_tmds_clock = connector->display_info.max_tmds_clock; in radeon_get_monitor_bpc()
182 connector->name, mode_clock, max_tmds_clock); in radeon_get_monitor_bpc()
186 if ((connector->display_info.edid_hdmi_rgb444_dc_modes & DRM_EDID_HDMI_DC_30) && in radeon_get_monitor_bpc()
193 connector->name, bpc); in radeon_get_monitor_bpc()
199 connector->name, bpc); in radeon_get_monitor_bpc()
204 connector->name); in radeon_get_monitor_bpc()
211 connector->name); in radeon_get_monitor_bpc()
216 connector->name, connector->display_info.bpc, bpc); in radeon_get_monitor_bpc()
222 radeon_connector_update_scratch_regs(struct drm_connector *connector, enum drm_connector_status sta… in radeon_connector_update_scratch_regs() argument
224 struct drm_device *dev = connector->dev; in radeon_connector_update_scratch_regs()
228 const struct drm_connector_helper_funcs *connector_funcs = connector->helper_private; in radeon_connector_update_scratch_regs()
231 best_encoder = connector_funcs->best_encoder(connector); in radeon_connector_update_scratch_regs()
233 drm_connector_for_each_possible_encoder(connector, encoder) { in radeon_connector_update_scratch_regs()
240 radeon_atombios_connected_scratch_regs(connector, encoder, connected); in radeon_connector_update_scratch_regs()
242 radeon_combios_connected_scratch_regs(connector, encoder, connected); in radeon_connector_update_scratch_regs()
246 static struct drm_encoder *radeon_find_encoder(struct drm_connector *connector, int encoder_type) in radeon_find_encoder() argument
250 drm_connector_for_each_possible_encoder(connector, encoder) { in radeon_find_encoder()
258 struct edid *radeon_connector_edid(struct drm_connector *connector) in radeon_connector_edid() argument
260 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_connector_edid()
261 struct drm_property_blob *edid_blob = connector->edid_blob_ptr; in radeon_connector_edid()
273 static void radeon_connector_get_edid(struct drm_connector *connector) in radeon_connector_get_edid() argument
275 struct drm_device *dev = connector->dev; in radeon_connector_get_edid()
277 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_connector_get_edid()
286 if ((radeon_connector_encoder_get_dp_bridge_encoder_id(connector) != in radeon_connector_get_edid()
289 radeon_connector->edid = drm_get_edid(connector, in radeon_connector_get_edid()
291 } else if ((connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) || in radeon_connector_get_edid()
292 (connector->connector_type == DRM_MODE_CONNECTOR_eDP)) { in radeon_connector_get_edid()
304 connector->connector_type == DRM_MODE_CONNECTOR_LVDS && in radeon_connector_get_edid()
322 if (((connector->connector_type == DRM_MODE_CONNECTOR_LVDS) || in radeon_connector_get_edid()
323 (connector->connector_type == DRM_MODE_CONNECTOR_eDP))) in radeon_connector_get_edid()
332 static void radeon_connector_free_edid(struct drm_connector *connector) in radeon_connector_free_edid() argument
334 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_connector_free_edid()
340 static int radeon_ddc_get_modes(struct drm_connector *connector) in radeon_ddc_get_modes() argument
342 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_ddc_get_modes()
346 drm_connector_update_edid_property(connector, radeon_connector->edid); in radeon_ddc_get_modes()
347 ret = drm_add_edid_modes(connector, radeon_connector->edid); in radeon_ddc_get_modes()
350 drm_connector_update_edid_property(connector, NULL); in radeon_ddc_get_modes()
354 static struct drm_encoder *radeon_best_single_encoder(struct drm_connector *connector) in radeon_best_single_encoder() argument
359 drm_connector_for_each_possible_encoder(connector, encoder) in radeon_best_single_encoder()
365 static void radeon_get_native_mode(struct drm_connector *connector) in radeon_get_native_mode() argument
367 struct drm_encoder *encoder = radeon_best_single_encoder(connector); in radeon_get_native_mode()
375 if (!list_empty(&connector->probed_modes)) { in radeon_get_native_mode()
377 list_first_entry(&connector->probed_modes, in radeon_get_native_mode()
393 radeon_connector_analog_encoder_conflict_solve(struct drm_connector *connector, in radeon_connector_analog_encoder_conflict_solve() argument
398 struct drm_device *dev = connector->dev; in radeon_connector_analog_encoder_conflict_solve()
405 if (conflict == connector) in radeon_connector_analog_encoder_conflict_solve()
423 connector->name); in radeon_connector_analog_encoder_conflict_solve()
428 connector->name); in radeon_connector_analog_encoder_conflict_solve()
476 static void radeon_add_common_modes(struct drm_encoder *encoder, struct drm_connector *connector) in radeon_add_common_modes() argument
523 drm_mode_probed_add(connector, mode); in radeon_add_common_modes()
527 static int radeon_connector_set_property(struct drm_connector *connector, struct drm_property *prop… in radeon_connector_set_property() argument
530 struct drm_device *dev = connector->dev; in radeon_connector_set_property()
539 /* need to find digital encoder on connector */ in radeon_connector_set_property()
540 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in radeon_connector_set_property()
558 struct radeon_connector *radeon_connector = to_radeon_connector(connector); 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()
573 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_connector_set_property()
574 /* need to find digital encoder on connector */ in radeon_connector_set_property()
575 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in radeon_connector_set_property()
588 /* need to find digital encoder on connector */ in radeon_connector_set_property()
589 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in radeon_connector_set_property()
602 /* need to find digital encoder on connector */ in radeon_connector_set_property()
603 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in radeon_connector_set_property()
616 /* need to find digital encoder on connector */ in radeon_connector_set_property()
617 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in radeon_connector_set_property()
630 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_TVDAC); in radeon_connector_set_property()
632 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_DAC); in radeon_connector_set_property()
655 to_radeon_connector(connector); in radeon_connector_set_property()
666 /* need to find digital encoder on connector */ in radeon_connector_set_property()
667 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in radeon_connector_set_property()
692 if (connector->encoder) in radeon_connector_set_property()
693 radeon_encoder = to_radeon_encoder(connector->encoder); in radeon_connector_set_property()
695 const struct drm_connector_helper_funcs *connector_funcs = connector->helper_private; in radeon_connector_set_property()
696 radeon_encoder = to_radeon_encoder(connector_funcs->best_encoder(connector)); in radeon_connector_set_property()
719 if (connector->encoder) in radeon_connector_set_property()
720 radeon_encoder = to_radeon_encoder(connector->encoder); in radeon_connector_set_property()
722 const struct drm_connector_helper_funcs *connector_funcs = connector->helper_private; in radeon_connector_set_property()
723 radeon_encoder = to_radeon_encoder(connector_funcs->best_encoder(connector)); in radeon_connector_set_property()
731 if (connector->encoder && connector->encoder->crtc) { in radeon_connector_set_property()
732 struct drm_crtc *crtc = connector->encoder->crtc; in radeon_connector_set_property()
749 struct drm_connector *connector) in radeon_fixup_lvds_native_mode() argument
756 list_for_each_entry_safe(mode, t, &connector->probed_modes, head) { in radeon_fixup_lvds_native_mode()
766 list_for_each_entry_safe(mode, t, &connector->probed_modes, head) { in radeon_fixup_lvds_native_mode()
783 static int radeon_lvds_get_modes(struct drm_connector *connector) in radeon_lvds_get_modes() argument
789 radeon_connector_get_edid(connector); in radeon_lvds_get_modes()
790 ret = radeon_ddc_get_modes(connector); in radeon_lvds_get_modes()
792 encoder = radeon_best_single_encoder(connector); in radeon_lvds_get_modes()
794 radeon_fixup_lvds_native_mode(encoder, connector); in radeon_lvds_get_modes()
796 radeon_add_common_modes(encoder, connector); in radeon_lvds_get_modes()
801 encoder = radeon_best_single_encoder(connector); in radeon_lvds_get_modes()
809 drm_mode_probed_add(connector, mode); in radeon_lvds_get_modes()
811 connector->display_info.width_mm = mode->width_mm; in radeon_lvds_get_modes()
812 connector->display_info.height_mm = mode->height_mm; in radeon_lvds_get_modes()
814 radeon_add_common_modes(encoder, connector); in radeon_lvds_get_modes()
820 static enum drm_mode_status radeon_lvds_mode_valid(struct drm_connector *connector, in radeon_lvds_mode_valid() argument
823 struct drm_encoder *encoder = radeon_best_single_encoder(connector); in radeon_lvds_mode_valid()
851 radeon_lvds_detect(struct drm_connector *connector, bool force) in radeon_lvds_detect() argument
853 struct drm_device *dev = connector->dev; in radeon_lvds_detect()
855 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_lvds_detect()
856 struct drm_encoder *encoder = radeon_best_single_encoder(connector); in radeon_lvds_detect()
861 r = pm_runtime_get_sync(connector->dev->dev); in radeon_lvds_detect()
863 pm_runtime_put_autosuspend(connector->dev->dev); in radeon_lvds_detect()
883 radeon_connector_get_edid(connector); in radeon_lvds_detect()
888 radeon_connector_update_scratch_regs(connector, ret); in radeon_lvds_detect()
891 pm_runtime_mark_last_busy(connector->dev->dev); in radeon_lvds_detect()
892 pm_runtime_put_autosuspend(connector->dev->dev); in radeon_lvds_detect()
898 static void radeon_connector_unregister(struct drm_connector *connector) in radeon_connector_unregister() argument
900 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_connector_unregister()
908 static void radeon_connector_destroy(struct drm_connector *connector) in radeon_connector_destroy() argument
910 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_connector_destroy()
912 radeon_connector_free_edid(connector); in radeon_connector_destroy()
914 drm_connector_unregister(connector); in radeon_connector_destroy()
915 drm_connector_cleanup(connector); in radeon_connector_destroy()
916 kfree(connector); in radeon_connector_destroy()
919 static int radeon_lvds_set_property(struct drm_connector *connector, in radeon_lvds_set_property() argument
923 struct drm_device *dev = connector->dev; in radeon_lvds_set_property()
931 if (connector->encoder) in radeon_lvds_set_property()
932 radeon_encoder = to_radeon_encoder(connector->encoder); in radeon_lvds_set_property()
934 const struct drm_connector_helper_funcs *connector_funcs = connector->helper_private; in radeon_lvds_set_property()
935 radeon_encoder = to_radeon_encoder(connector_funcs->best_encoder(connector)); in radeon_lvds_set_property()
970 static int radeon_vga_get_modes(struct drm_connector *connector) in radeon_vga_get_modes() argument
974 radeon_connector_get_edid(connector); in radeon_vga_get_modes()
975 ret = radeon_ddc_get_modes(connector); in radeon_vga_get_modes()
977 radeon_get_native_mode(connector); in radeon_vga_get_modes()
982 static enum drm_mode_status radeon_vga_mode_valid(struct drm_connector *connector, in radeon_vga_mode_valid() argument
985 struct drm_device *dev = connector->dev; in radeon_vga_mode_valid()
997 radeon_vga_detect(struct drm_connector *connector, bool force) in radeon_vga_detect() argument
999 struct drm_device *dev = connector->dev; in radeon_vga_detect()
1001 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_vga_detect()
1009 r = pm_runtime_get_sync(connector->dev->dev); in radeon_vga_detect()
1011 pm_runtime_put_autosuspend(connector->dev->dev); in radeon_vga_detect()
1016 encoder = radeon_best_single_encoder(connector); in radeon_vga_detect()
1024 radeon_connector_free_edid(connector); in radeon_vga_detect()
1025 radeon_connector_get_edid(connector); in radeon_vga_detect()
1029 connector->name); in radeon_vga_detect()
1039 radeon_connector_free_edid(connector); in radeon_vga_detect()
1053 ret = connector->status; in radeon_vga_detect()
1059 ret = encoder_funcs->detect(encoder, connector); in radeon_vga_detect()
1066 ret = radeon_connector_analog_encoder_conflict_solve(connector, encoder, ret, true); in radeon_vga_detect()
1078 radeon_connector_update_scratch_regs(connector, ret); in radeon_vga_detect()
1082 pm_runtime_mark_last_busy(connector->dev->dev); in radeon_vga_detect()
1083 pm_runtime_put_autosuspend(connector->dev->dev); in radeon_vga_detect()
1104 static int radeon_tv_get_modes(struct drm_connector *connector) in radeon_tv_get_modes() argument
1106 struct drm_device *dev = connector->dev; in radeon_tv_get_modes()
1111 encoder = radeon_best_single_encoder(connector); in radeon_tv_get_modes()
1118 radeon_add_common_modes(encoder, connector); in radeon_tv_get_modes()
1125 drm_mode_probed_add(connector, tv_mode); in radeon_tv_get_modes()
1130 static enum drm_mode_status radeon_tv_mode_valid(struct drm_connector *connector, in radeon_tv_mode_valid() argument
1139 radeon_tv_detect(struct drm_connector *connector, bool force) in radeon_tv_detect() argument
1143 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_tv_detect()
1151 r = pm_runtime_get_sync(connector->dev->dev); in radeon_tv_detect()
1153 pm_runtime_put_autosuspend(connector->dev->dev); in radeon_tv_detect()
1158 encoder = radeon_best_single_encoder(connector); in radeon_tv_detect()
1163 ret = encoder_funcs->detect(encoder, connector); in radeon_tv_detect()
1166 ret = radeon_connector_analog_encoder_conflict_solve(connector, encoder, ret, false); in radeon_tv_detect()
1167 radeon_connector_update_scratch_regs(connector, ret); in radeon_tv_detect()
1170 pm_runtime_mark_last_busy(connector->dev->dev); in radeon_tv_detect()
1171 pm_runtime_put_autosuspend(connector->dev->dev); in radeon_tv_detect()
1192 static bool radeon_check_hpd_status_unchanged(struct drm_connector *connector) in radeon_check_hpd_status_unchanged() argument
1194 struct drm_device *dev = connector->dev; in radeon_check_hpd_status_unchanged()
1196 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_check_hpd_status_unchanged()
1206 if (connector->status == status) in radeon_check_hpd_status_unchanged()
1218 * we need to find the DAC encoder object for this connector.
1222 * if its shared we have to set the other connector to disconnected.
1225 radeon_dvi_detect(struct drm_connector *connector, bool force) in radeon_dvi_detect() argument
1227 struct drm_device *dev = connector->dev; in radeon_dvi_detect()
1229 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_dvi_detect()
1237 r = pm_runtime_get_sync(connector->dev->dev); in radeon_dvi_detect()
1239 pm_runtime_put_autosuspend(connector->dev->dev); in radeon_dvi_detect()
1249 if (!force && radeon_check_hpd_status_unchanged(connector)) { in radeon_dvi_detect()
1250 ret = connector->status; in radeon_dvi_detect()
1262 connector->status != connector_status_connected) { in radeon_dvi_detect()
1272 radeon_connector_free_edid(connector); in radeon_dvi_detect()
1273 radeon_connector_get_edid(connector); in radeon_dvi_detect()
1277 connector->name); in radeon_dvi_detect()
1284 connector->name); in radeon_dvi_detect()
1298 radeon_connector_free_edid(connector); in radeon_dvi_detect()
1312 if (connector == list_connector) in radeon_dvi_detect()
1322 radeon_connector_free_edid(connector); in radeon_dvi_detect()
1336 if ((connector->connector_type == DRM_MODE_CONNECTOR_DVID) || in radeon_dvi_detect()
1337 (connector->connector_type == DRM_MODE_CONNECTOR_HDMIA)) in radeon_dvi_detect()
1346 ret = connector->status; in radeon_dvi_detect()
1352 drm_connector_for_each_possible_encoder(connector, encoder) { in radeon_dvi_detect()
1362 ret = encoder_funcs->detect(encoder, connector); in radeon_dvi_detect()
1373 lret = encoder_funcs->detect(encoder, connector); in radeon_dvi_detect()
1385 ret = radeon_connector_analog_encoder_conflict_solve(connector, encoder, ret, true); in radeon_dvi_detect()
1403 radeon_connector_update_scratch_regs(connector, ret); in radeon_dvi_detect()
1407 connector->helper_private; in radeon_dvi_detect()
1409 encoder = connector_funcs->best_encoder(connector); in radeon_dvi_detect()
1411 radeon_connector_get_edid(connector); in radeon_dvi_detect()
1412 radeon_audio_detect(connector, encoder, ret); in radeon_dvi_detect()
1418 pm_runtime_mark_last_busy(connector->dev->dev); in radeon_dvi_detect()
1419 pm_runtime_put_autosuspend(connector->dev->dev); in radeon_dvi_detect()
1426 static struct drm_encoder *radeon_dvi_encoder(struct drm_connector *connector) in radeon_dvi_encoder() argument
1428 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_dvi_encoder()
1431 drm_connector_for_each_possible_encoder(connector, encoder) { in radeon_dvi_encoder()
1446 drm_connector_for_each_possible_encoder(connector, encoder) in radeon_dvi_encoder()
1452 static void radeon_dvi_force(struct drm_connector *connector) in radeon_dvi_force() argument
1454 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_dvi_force()
1455 if (connector->force == DRM_FORCE_ON) in radeon_dvi_force()
1457 if (connector->force == DRM_FORCE_ON_DIGITAL) in radeon_dvi_force()
1461 static enum drm_mode_status radeon_dvi_mode_valid(struct drm_connector *connector, in radeon_dvi_mode_valid() argument
1464 struct drm_device *dev = connector->dev; in radeon_dvi_mode_valid()
1466 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_dvi_mode_valid()
1481 else if (ASIC_IS_DCE6(rdev) && drm_detect_hdmi_monitor(radeon_connector_edid(connector))) { in radeon_dvi_mode_valid()
1515 static int radeon_dp_get_modes(struct drm_connector *connector) in radeon_dp_get_modes() argument
1517 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_dp_get_modes()
1519 struct drm_encoder *encoder = radeon_best_single_encoder(connector); in radeon_dp_get_modes()
1522 if ((connector->connector_type == DRM_MODE_CONNECTOR_eDP) || in radeon_dp_get_modes()
1523 (connector->connector_type == DRM_MODE_CONNECTOR_LVDS)) { in radeon_dp_get_modes()
1526 if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) { in radeon_dp_get_modes()
1528 atombios_set_edp_panel_power(connector, in radeon_dp_get_modes()
1530 radeon_connector_get_edid(connector); in radeon_dp_get_modes()
1531 ret = radeon_ddc_get_modes(connector); in radeon_dp_get_modes()
1533 atombios_set_edp_panel_power(connector, in radeon_dp_get_modes()
1537 if (radeon_connector_encoder_get_dp_bridge_encoder_id(connector) != in radeon_dp_get_modes()
1542 radeon_connector_get_edid(connector); in radeon_dp_get_modes()
1543 ret = radeon_ddc_get_modes(connector); in radeon_dp_get_modes()
1548 radeon_fixup_lvds_native_mode(encoder, connector); in radeon_dp_get_modes()
1550 radeon_add_common_modes(encoder, connector); in radeon_dp_get_modes()
1562 drm_mode_probed_add(connector, mode); in radeon_dp_get_modes()
1564 connector->display_info.width_mm = mode->width_mm; in radeon_dp_get_modes()
1565 connector->display_info.height_mm = mode->height_mm; in radeon_dp_get_modes()
1567 radeon_add_common_modes(encoder, connector); in radeon_dp_get_modes()
1571 if (radeon_connector_encoder_get_dp_bridge_encoder_id(connector) != in radeon_dp_get_modes()
1576 radeon_connector_get_edid(connector); in radeon_dp_get_modes()
1577 ret = radeon_ddc_get_modes(connector); in radeon_dp_get_modes()
1579 radeon_get_native_mode(connector); in radeon_dp_get_modes()
1585 u16 radeon_connector_encoder_get_dp_bridge_encoder_id(struct drm_connector *connector) in radeon_connector_encoder_get_dp_bridge_encoder_id() argument
1590 drm_connector_for_each_possible_encoder(connector, encoder) { in radeon_connector_encoder_get_dp_bridge_encoder_id()
1605 static bool radeon_connector_encoder_is_hbr2(struct drm_connector *connector) in radeon_connector_encoder_is_hbr2() argument
1611 drm_connector_for_each_possible_encoder(connector, encoder) { in radeon_connector_encoder_is_hbr2()
1620 bool radeon_connector_is_dp12_capable(struct drm_connector *connector) in radeon_connector_is_dp12_capable() argument
1622 struct drm_device *dev = connector->dev; in radeon_connector_is_dp12_capable()
1627 radeon_connector_encoder_is_hbr2(connector)) { in radeon_connector_is_dp12_capable()
1635 radeon_dp_detect(struct drm_connector *connector, bool force) in radeon_dp_detect() argument
1637 struct drm_device *dev = connector->dev; in radeon_dp_detect()
1639 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_dp_detect()
1642 struct drm_encoder *encoder = radeon_best_single_encoder(connector); in radeon_dp_detect()
1646 r = pm_runtime_get_sync(connector->dev->dev); in radeon_dp_detect()
1648 pm_runtime_put_autosuspend(connector->dev->dev); in radeon_dp_detect()
1653 if (!force && radeon_check_hpd_status_unchanged(connector)) { in radeon_dp_detect()
1654 ret = connector->status; in radeon_dp_detect()
1658 radeon_connector_free_edid(connector); in radeon_dp_detect()
1660 if ((connector->connector_type == DRM_MODE_CONNECTOR_eDP) || in radeon_dp_detect()
1661 (connector->connector_type == DRM_MODE_CONNECTOR_LVDS)) { in radeon_dp_detect()
1678 atombios_set_edp_panel_power(connector, in radeon_dp_detect()
1683 atombios_set_edp_panel_power(connector, in radeon_dp_detect()
1685 } else if (radeon_connector_encoder_get_dp_bridge_encoder_id(connector) != in radeon_dp_detect()
1700 ret = encoder_funcs->detect(encoder, connector); in radeon_dp_detect()
1721 radeon_connector_update_scratch_regs(connector, ret); in radeon_dp_detect()
1724 radeon_connector_get_edid(connector); in radeon_dp_detect()
1725 radeon_audio_detect(connector, encoder, ret); in radeon_dp_detect()
1730 pm_runtime_mark_last_busy(connector->dev->dev); in radeon_dp_detect()
1731 pm_runtime_put_autosuspend(connector->dev->dev); in radeon_dp_detect()
1737 static enum drm_mode_status radeon_dp_mode_valid(struct drm_connector *connector, in radeon_dp_mode_valid() argument
1740 struct drm_device *dev = connector->dev; in radeon_dp_mode_valid()
1742 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_dp_mode_valid()
1747 if ((connector->connector_type == DRM_MODE_CONNECTOR_eDP) || in radeon_dp_mode_valid()
1748 (connector->connector_type == DRM_MODE_CONNECTOR_LVDS)) { in radeon_dp_mode_valid()
1749 struct drm_encoder *encoder = radeon_best_single_encoder(connector); in radeon_dp_mode_valid()
1775 return radeon_dp_mode_valid_helper(connector, mode); in radeon_dp_mode_valid()
1777 if (ASIC_IS_DCE6(rdev) && drm_detect_hdmi_monitor(radeon_connector_edid(connector))) { in radeon_dp_mode_valid()
1839 struct drm_connector *connector; in radeon_add_atom_connector() local
1853 /* if the user selected tv=0 don't try and add the connector */ in radeon_add_atom_connector()
1861 list_for_each_entry(connector, &dev->mode_config.connector_list, head) { in radeon_add_atom_connector()
1862 radeon_connector = to_radeon_connector(connector); in radeon_add_atom_connector()
1899 connector = &radeon_connector->base; in radeon_add_atom_connector()
1939 connector->interlace_allowed = true; in radeon_add_atom_connector()
1940 connector->doublescan_allowed = true; in radeon_add_atom_connector()
1994 connector->interlace_allowed = true; in radeon_add_atom_connector()
1996 connector->doublescan_allowed = true; in radeon_add_atom_connector()
1998 connector->doublescan_allowed = false; in radeon_add_atom_connector()
2018 connector->interlace_allowed = false; in radeon_add_atom_connector()
2019 connector->doublescan_allowed = false; in radeon_add_atom_connector()
2051 connector->interlace_allowed = true; in radeon_add_atom_connector()
2052 connector->doublescan_allowed = true; 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()
2140 connector->interlace_allowed = true; in radeon_add_atom_connector()
2142 connector->doublescan_allowed = true; in radeon_add_atom_connector()
2144 connector->doublescan_allowed = false; in radeon_add_atom_connector()
2196 connector->interlace_allowed = true; in radeon_add_atom_connector()
2198 connector->doublescan_allowed = true; in radeon_add_atom_connector()
2200 connector->doublescan_allowed = false; in radeon_add_atom_connector()
2253 connector->interlace_allowed = true; in radeon_add_atom_connector()
2255 connector->doublescan_allowed = false; in radeon_add_atom_connector()
2281 connector->interlace_allowed = false; in radeon_add_atom_connector()
2282 connector->doublescan_allowed = false; in radeon_add_atom_connector()
2301 connector->interlace_allowed = false; in radeon_add_atom_connector()
2302 connector->doublescan_allowed = false; in radeon_add_atom_connector()
2326 connector->interlace_allowed = false; in radeon_add_atom_connector()
2327 connector->doublescan_allowed = false; in radeon_add_atom_connector()
2334 connector->polled = DRM_CONNECTOR_POLL_CONNECT | in radeon_add_atom_connector()
2338 connector->polled = DRM_CONNECTOR_POLL_HPD; in radeon_add_atom_connector()
2340 connector->display_info.subpixel_order = subpixel_order; in radeon_add_atom_connector()
2341 drm_connector_register(connector); in radeon_add_atom_connector()
2349 drm_connector_cleanup(connector); in radeon_add_atom_connector()
2350 kfree(connector); in radeon_add_atom_connector()
2363 struct drm_connector *connector; in radeon_add_legacy_connector() local
2371 /* if the user selected tv=0 don't try and add the connector */ in radeon_add_legacy_connector()
2379 list_for_each_entry(connector, &dev->mode_config.connector_list, head) { in radeon_add_legacy_connector()
2380 radeon_connector = to_radeon_connector(connector); in radeon_add_legacy_connector()
2391 connector = &radeon_connector->base; in radeon_add_legacy_connector()
2418 connector->interlace_allowed = true; in radeon_add_legacy_connector()
2419 connector->doublescan_allowed = true; in radeon_add_legacy_connector()
2440 connector->interlace_allowed = true; in radeon_add_legacy_connector()
2441 connector->doublescan_allowed = true; in radeon_add_legacy_connector()
2464 connector->interlace_allowed = true; in radeon_add_legacy_connector()
2466 connector->doublescan_allowed = true; in radeon_add_legacy_connector()
2468 connector->doublescan_allowed = false; in radeon_add_legacy_connector()
2494 connector->interlace_allowed = false; in radeon_add_legacy_connector()
2495 connector->doublescan_allowed = false; in radeon_add_legacy_connector()
2514 connector->interlace_allowed = false; in radeon_add_legacy_connector()
2515 connector->doublescan_allowed = false; in radeon_add_legacy_connector()
2521 connector->polled = DRM_CONNECTOR_POLL_CONNECT | in radeon_add_legacy_connector()
2525 connector->polled = DRM_CONNECTOR_POLL_HPD; in radeon_add_legacy_connector()
2527 connector->display_info.subpixel_order = subpixel_order; in radeon_add_legacy_connector()
2528 drm_connector_register(connector); in radeon_add_legacy_connector()