Lines Matching refs: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()
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()
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()
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()
254 best_encoder = connector_funcs->best_encoder(connector); in radeon_connector_update_scratch_regs()
256 drm_connector_for_each_possible_encoder(connector, encoder, i) { in radeon_connector_update_scratch_regs()
263 radeon_atombios_connected_scratch_regs(connector, encoder, connected); in radeon_connector_update_scratch_regs()
265 radeon_combios_connected_scratch_regs(connector, encoder, connected); in radeon_connector_update_scratch_regs()
269 static struct drm_encoder *radeon_find_encoder(struct drm_connector *connector, int encoder_type) in radeon_find_encoder() argument
274 drm_connector_for_each_possible_encoder(connector, encoder, i) { in radeon_find_encoder()
282 struct edid *radeon_connector_edid(struct drm_connector *connector) in radeon_connector_edid() argument
284 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_connector_edid()
285 struct drm_property_blob *edid_blob = connector->edid_blob_ptr; in radeon_connector_edid()
297 static void radeon_connector_get_edid(struct drm_connector *connector) in radeon_connector_get_edid() argument
299 struct drm_device *dev = connector->dev; in radeon_connector_get_edid()
301 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_connector_get_edid()
310 if ((radeon_connector_encoder_get_dp_bridge_encoder_id(connector) != in radeon_connector_get_edid()
313 radeon_connector->edid = drm_get_edid(connector, in radeon_connector_get_edid()
315 } else if ((connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) || in radeon_connector_get_edid()
316 (connector->connector_type == DRM_MODE_CONNECTOR_eDP)) { in radeon_connector_get_edid()
328 connector->connector_type == DRM_MODE_CONNECTOR_LVDS && in radeon_connector_get_edid()
346 if (((connector->connector_type == DRM_MODE_CONNECTOR_LVDS) || in radeon_connector_get_edid()
347 (connector->connector_type == DRM_MODE_CONNECTOR_eDP))) in radeon_connector_get_edid()
356 static void radeon_connector_free_edid(struct drm_connector *connector) in radeon_connector_free_edid() argument
358 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_connector_free_edid()
366 static int radeon_ddc_get_modes(struct drm_connector *connector) in radeon_ddc_get_modes() argument
368 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_ddc_get_modes()
372 drm_connector_update_edid_property(connector, radeon_connector->edid); in radeon_ddc_get_modes()
373 ret = drm_add_edid_modes(connector, radeon_connector->edid); in radeon_ddc_get_modes()
376 drm_connector_update_edid_property(connector, NULL); in radeon_ddc_get_modes()
380 static struct drm_encoder *radeon_best_single_encoder(struct drm_connector *connector) in radeon_best_single_encoder() argument
386 drm_connector_for_each_possible_encoder(connector, encoder, i) in radeon_best_single_encoder()
392 static void radeon_get_native_mode(struct drm_connector *connector) in radeon_get_native_mode() argument
394 struct drm_encoder *encoder = radeon_best_single_encoder(connector); in radeon_get_native_mode()
402 if (!list_empty(&connector->probed_modes)) { in radeon_get_native_mode()
404 list_first_entry(&connector->probed_modes, in radeon_get_native_mode()
420 radeon_connector_analog_encoder_conflict_solve(struct drm_connector *connector, in radeon_connector_analog_encoder_conflict_solve() argument
425 struct drm_device *dev = connector->dev; in radeon_connector_analog_encoder_conflict_solve()
433 if (conflict == connector) in radeon_connector_analog_encoder_conflict_solve()
451 connector->name); in radeon_connector_analog_encoder_conflict_solve()
456 connector->name); in radeon_connector_analog_encoder_conflict_solve()
500 static void radeon_add_common_modes(struct drm_encoder *encoder, struct drm_connector *connector) in radeon_add_common_modes() argument
547 drm_mode_probed_add(connector, mode); in radeon_add_common_modes()
551 static int radeon_connector_set_property(struct drm_connector *connector, struct drm_property *prop… in radeon_connector_set_property() argument
554 struct drm_device *dev = connector->dev; in radeon_connector_set_property()
564 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in radeon_connector_set_property()
582 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_connector_set_property()
584 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in radeon_connector_set_property()
597 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_connector_set_property()
599 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in radeon_connector_set_property()
613 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in radeon_connector_set_property()
627 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in radeon_connector_set_property()
641 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in radeon_connector_set_property()
654 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_TVDAC); in radeon_connector_set_property()
656 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_DAC); in radeon_connector_set_property()
679 to_radeon_connector(connector); in radeon_connector_set_property()
691 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in radeon_connector_set_property()
716 if (connector->encoder) in radeon_connector_set_property()
717 radeon_encoder = to_radeon_encoder(connector->encoder); in radeon_connector_set_property()
719 const struct drm_connector_helper_funcs *connector_funcs = connector->helper_private; in radeon_connector_set_property()
720 radeon_encoder = to_radeon_encoder(connector_funcs->best_encoder(connector)); in radeon_connector_set_property()
743 if (connector->encoder) in radeon_connector_set_property()
744 radeon_encoder = to_radeon_encoder(connector->encoder); in radeon_connector_set_property()
746 const struct drm_connector_helper_funcs *connector_funcs = connector->helper_private; in radeon_connector_set_property()
747 radeon_encoder = to_radeon_encoder(connector_funcs->best_encoder(connector)); in radeon_connector_set_property()
755 if (connector->encoder && connector->encoder->crtc) { in radeon_connector_set_property()
756 struct drm_crtc *crtc = connector->encoder->crtc; in radeon_connector_set_property()
773 struct drm_connector *connector) in radeon_fixup_lvds_native_mode() argument
780 list_for_each_entry_safe(mode, t, &connector->probed_modes, head) { in radeon_fixup_lvds_native_mode()
790 list_for_each_entry_safe(mode, t, &connector->probed_modes, head) { in radeon_fixup_lvds_native_mode()
807 static int radeon_lvds_get_modes(struct drm_connector *connector) in radeon_lvds_get_modes() argument
813 radeon_connector_get_edid(connector); in radeon_lvds_get_modes()
814 ret = radeon_ddc_get_modes(connector); in radeon_lvds_get_modes()
816 encoder = radeon_best_single_encoder(connector); in radeon_lvds_get_modes()
818 radeon_fixup_lvds_native_mode(encoder, connector); in radeon_lvds_get_modes()
820 radeon_add_common_modes(encoder, connector); in radeon_lvds_get_modes()
825 encoder = radeon_best_single_encoder(connector); in radeon_lvds_get_modes()
833 drm_mode_probed_add(connector, mode); in radeon_lvds_get_modes()
835 connector->display_info.width_mm = mode->width_mm; in radeon_lvds_get_modes()
836 connector->display_info.height_mm = mode->height_mm; in radeon_lvds_get_modes()
838 radeon_add_common_modes(encoder, connector); in radeon_lvds_get_modes()
844 static enum drm_mode_status radeon_lvds_mode_valid(struct drm_connector *connector, in radeon_lvds_mode_valid() argument
847 struct drm_encoder *encoder = radeon_best_single_encoder(connector); in radeon_lvds_mode_valid()
875 radeon_lvds_detect(struct drm_connector *connector, bool force) in radeon_lvds_detect() argument
877 struct drm_device *dev = connector->dev; in radeon_lvds_detect()
879 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_lvds_detect()
880 struct drm_encoder *encoder = radeon_best_single_encoder(connector); in radeon_lvds_detect()
885 r = pm_runtime_get_sync(connector->dev->dev); in radeon_lvds_detect()
905 radeon_connector_get_edid(connector); in radeon_lvds_detect()
910 radeon_connector_update_scratch_regs(connector, ret); in radeon_lvds_detect()
913 pm_runtime_mark_last_busy(connector->dev->dev); in radeon_lvds_detect()
914 pm_runtime_put_autosuspend(connector->dev->dev); in radeon_lvds_detect()
920 static void radeon_connector_unregister(struct drm_connector *connector) in radeon_connector_unregister() argument
922 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_connector_unregister()
930 static void radeon_connector_destroy(struct drm_connector *connector) in radeon_connector_destroy() argument
932 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_connector_destroy()
934 radeon_connector_free_edid(connector); in radeon_connector_destroy()
936 drm_connector_unregister(connector); in radeon_connector_destroy()
937 drm_connector_cleanup(connector); in radeon_connector_destroy()
938 kfree(connector); in radeon_connector_destroy()
941 static int radeon_lvds_set_property(struct drm_connector *connector, in radeon_lvds_set_property() argument
945 struct drm_device *dev = connector->dev; in radeon_lvds_set_property()
953 if (connector->encoder) in radeon_lvds_set_property()
954 radeon_encoder = to_radeon_encoder(connector->encoder); in radeon_lvds_set_property()
956 const struct drm_connector_helper_funcs *connector_funcs = connector->helper_private; in radeon_lvds_set_property()
957 radeon_encoder = to_radeon_encoder(connector_funcs->best_encoder(connector)); in radeon_lvds_set_property()
992 static int radeon_vga_get_modes(struct drm_connector *connector) in radeon_vga_get_modes() argument
996 radeon_connector_get_edid(connector); in radeon_vga_get_modes()
997 ret = radeon_ddc_get_modes(connector); in radeon_vga_get_modes()
999 radeon_get_native_mode(connector); in radeon_vga_get_modes()
1004 static enum drm_mode_status radeon_vga_mode_valid(struct drm_connector *connector, in radeon_vga_mode_valid() argument
1007 struct drm_device *dev = connector->dev; in radeon_vga_mode_valid()
1019 radeon_vga_detect(struct drm_connector *connector, bool force) in radeon_vga_detect() argument
1021 struct drm_device *dev = connector->dev; in radeon_vga_detect()
1023 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_vga_detect()
1031 r = pm_runtime_get_sync(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()
1174 encoder = radeon_best_single_encoder(connector); in radeon_tv_detect()
1179 ret = encoder_funcs->detect(encoder, connector); in radeon_tv_detect()
1182 ret = radeon_connector_analog_encoder_conflict_solve(connector, encoder, ret, false); in radeon_tv_detect()
1183 radeon_connector_update_scratch_regs(connector, ret); in radeon_tv_detect()
1186 pm_runtime_mark_last_busy(connector->dev->dev); in radeon_tv_detect()
1187 pm_runtime_put_autosuspend(connector->dev->dev); in radeon_tv_detect()
1208 static bool radeon_check_hpd_status_unchanged(struct drm_connector *connector) in radeon_check_hpd_status_unchanged() argument
1210 struct drm_device *dev = connector->dev; in radeon_check_hpd_status_unchanged()
1212 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_check_hpd_status_unchanged()
1222 if (connector->status == status) in radeon_check_hpd_status_unchanged()
1241 radeon_dvi_detect(struct drm_connector *connector, bool force) in radeon_dvi_detect() argument
1243 struct drm_device *dev = connector->dev; in radeon_dvi_detect()
1245 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_dvi_detect()
1253 r = pm_runtime_get_sync(connector->dev->dev); in radeon_dvi_detect()
1263 if (!force && radeon_check_hpd_status_unchanged(connector)) { in radeon_dvi_detect()
1264 ret = connector->status; in radeon_dvi_detect()
1276 connector->status != connector_status_connected) { in radeon_dvi_detect()
1286 radeon_connector_free_edid(connector); in radeon_dvi_detect()
1287 radeon_connector_get_edid(connector); in radeon_dvi_detect()
1291 connector->name); in radeon_dvi_detect()
1298 connector->name); in radeon_dvi_detect()
1312 radeon_connector_free_edid(connector); in radeon_dvi_detect()
1326 if (connector == list_connector) in radeon_dvi_detect()
1336 radeon_connector_free_edid(connector); in radeon_dvi_detect()
1350 if ((connector->connector_type == DRM_MODE_CONNECTOR_DVID) || in radeon_dvi_detect()
1351 (connector->connector_type == DRM_MODE_CONNECTOR_HDMIA)) in radeon_dvi_detect()
1360 ret = connector->status; in radeon_dvi_detect()
1368 drm_connector_for_each_possible_encoder(connector, encoder, i) { in radeon_dvi_detect()
1378 ret = encoder_funcs->detect(encoder, connector); in radeon_dvi_detect()
1389 lret = encoder_funcs->detect(encoder, connector); in radeon_dvi_detect()
1401 ret = radeon_connector_analog_encoder_conflict_solve(connector, encoder, ret, true); in radeon_dvi_detect()
1419 radeon_connector_update_scratch_regs(connector, ret); in radeon_dvi_detect()
1423 connector->helper_private; in radeon_dvi_detect()
1425 encoder = connector_funcs->best_encoder(connector); in radeon_dvi_detect()
1427 radeon_connector_get_edid(connector); in radeon_dvi_detect()
1428 radeon_audio_detect(connector, encoder, ret); in radeon_dvi_detect()
1434 pm_runtime_mark_last_busy(connector->dev->dev); in radeon_dvi_detect()
1435 pm_runtime_put_autosuspend(connector->dev->dev); in radeon_dvi_detect()
1442 static struct drm_encoder *radeon_dvi_encoder(struct drm_connector *connector) in radeon_dvi_encoder() argument
1444 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_dvi_encoder()
1448 drm_connector_for_each_possible_encoder(connector, encoder, i) { in radeon_dvi_encoder()
1463 drm_connector_for_each_possible_encoder(connector, encoder, i) in radeon_dvi_encoder()
1469 static void radeon_dvi_force(struct drm_connector *connector) in radeon_dvi_force() argument
1471 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_dvi_force()
1472 if (connector->force == DRM_FORCE_ON) in radeon_dvi_force()
1474 if (connector->force == DRM_FORCE_ON_DIGITAL) in radeon_dvi_force()
1478 static enum drm_mode_status radeon_dvi_mode_valid(struct drm_connector *connector, in radeon_dvi_mode_valid() argument
1481 struct drm_device *dev = connector->dev; in radeon_dvi_mode_valid()
1483 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_dvi_mode_valid()
1498 else if (ASIC_IS_DCE6(rdev) && drm_detect_hdmi_monitor(radeon_connector_edid(connector))) { in radeon_dvi_mode_valid()
1532 static int radeon_dp_get_modes(struct drm_connector *connector) in radeon_dp_get_modes() argument
1534 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_dp_get_modes()
1536 struct drm_encoder *encoder = radeon_best_single_encoder(connector); in radeon_dp_get_modes()
1539 if ((connector->connector_type == DRM_MODE_CONNECTOR_eDP) || in radeon_dp_get_modes()
1540 (connector->connector_type == DRM_MODE_CONNECTOR_LVDS)) { in radeon_dp_get_modes()
1543 if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) { in radeon_dp_get_modes()
1545 atombios_set_edp_panel_power(connector, in radeon_dp_get_modes()
1547 radeon_connector_get_edid(connector); in radeon_dp_get_modes()
1548 ret = radeon_ddc_get_modes(connector); in radeon_dp_get_modes()
1550 atombios_set_edp_panel_power(connector, in radeon_dp_get_modes()
1554 if (radeon_connector_encoder_get_dp_bridge_encoder_id(connector) != in radeon_dp_get_modes()
1559 radeon_connector_get_edid(connector); in radeon_dp_get_modes()
1560 ret = radeon_ddc_get_modes(connector); in radeon_dp_get_modes()
1565 radeon_fixup_lvds_native_mode(encoder, connector); in radeon_dp_get_modes()
1567 radeon_add_common_modes(encoder, connector); in radeon_dp_get_modes()
1579 drm_mode_probed_add(connector, mode); in radeon_dp_get_modes()
1581 connector->display_info.width_mm = mode->width_mm; in radeon_dp_get_modes()
1582 connector->display_info.height_mm = mode->height_mm; in radeon_dp_get_modes()
1584 radeon_add_common_modes(encoder, connector); in radeon_dp_get_modes()
1588 if (radeon_connector_encoder_get_dp_bridge_encoder_id(connector) != in radeon_dp_get_modes()
1593 radeon_connector_get_edid(connector); in radeon_dp_get_modes()
1594 ret = radeon_ddc_get_modes(connector); in radeon_dp_get_modes()
1596 radeon_get_native_mode(connector); in radeon_dp_get_modes()
1602 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, i) { 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
1630 drm_connector_for_each_possible_encoder(connector, encoder, i) { in radeon_connector_encoder_is_hbr2()
1639 bool radeon_connector_is_dp12_capable(struct drm_connector *connector) in radeon_connector_is_dp12_capable() argument
1641 struct drm_device *dev = connector->dev; in radeon_connector_is_dp12_capable()
1646 radeon_connector_encoder_is_hbr2(connector)) { in radeon_connector_is_dp12_capable()
1654 radeon_dp_detect(struct drm_connector *connector, bool force) in radeon_dp_detect() argument
1656 struct drm_device *dev = connector->dev; in radeon_dp_detect()
1658 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_dp_detect()
1661 struct drm_encoder *encoder = radeon_best_single_encoder(connector); in radeon_dp_detect()
1668 r = pm_runtime_get_sync(connector->dev->dev); in radeon_dp_detect()
1673 if (!force && radeon_check_hpd_status_unchanged(connector)) { in radeon_dp_detect()
1674 ret = connector->status; in radeon_dp_detect()
1678 radeon_connector_free_edid(connector); in radeon_dp_detect()
1680 if ((connector->connector_type == DRM_MODE_CONNECTOR_eDP) || in radeon_dp_detect()
1681 (connector->connector_type == DRM_MODE_CONNECTOR_LVDS)) { in radeon_dp_detect()
1698 atombios_set_edp_panel_power(connector, in radeon_dp_detect()
1703 atombios_set_edp_panel_power(connector, in radeon_dp_detect()
1705 } else if (radeon_connector_encoder_get_dp_bridge_encoder_id(connector) != in radeon_dp_detect()
1720 ret = encoder_funcs->detect(encoder, connector); in radeon_dp_detect()
1750 radeon_connector_update_scratch_regs(connector, ret); in radeon_dp_detect()
1753 radeon_connector_get_edid(connector); in radeon_dp_detect()
1754 radeon_audio_detect(connector, encoder, ret); in radeon_dp_detect()
1759 pm_runtime_mark_last_busy(connector->dev->dev); in radeon_dp_detect()
1760 pm_runtime_put_autosuspend(connector->dev->dev); in radeon_dp_detect()
1766 static enum drm_mode_status radeon_dp_mode_valid(struct drm_connector *connector, in radeon_dp_mode_valid() argument
1769 struct drm_device *dev = connector->dev; in radeon_dp_mode_valid()
1771 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_dp_mode_valid()
1776 if ((connector->connector_type == DRM_MODE_CONNECTOR_eDP) || in radeon_dp_mode_valid()
1777 (connector->connector_type == DRM_MODE_CONNECTOR_LVDS)) { in radeon_dp_mode_valid()
1778 struct drm_encoder *encoder = radeon_best_single_encoder(connector); in radeon_dp_mode_valid()
1804 return radeon_dp_mode_valid_helper(connector, mode); in radeon_dp_mode_valid()
1806 if (ASIC_IS_DCE6(rdev) && drm_detect_hdmi_monitor(radeon_connector_edid(connector))) { in radeon_dp_mode_valid()
1868 struct drm_connector *connector; in radeon_add_atom_connector() local
1889 list_for_each_entry(connector, &dev->mode_config.connector_list, head) { in radeon_add_atom_connector()
1890 radeon_connector = to_radeon_connector(connector); in radeon_add_atom_connector()
1927 connector = &radeon_connector->base; in radeon_add_atom_connector()
1963 connector->interlace_allowed = true; in radeon_add_atom_connector()
1964 connector->doublescan_allowed = true; in radeon_add_atom_connector()
2016 connector->interlace_allowed = true; in radeon_add_atom_connector()
2018 connector->doublescan_allowed = true; in radeon_add_atom_connector()
2020 connector->doublescan_allowed = false; in radeon_add_atom_connector()
2038 connector->interlace_allowed = false; in radeon_add_atom_connector()
2039 connector->doublescan_allowed = false; in radeon_add_atom_connector()
2066 connector->interlace_allowed = true; in radeon_add_atom_connector()
2067 connector->doublescan_allowed = true; in radeon_add_atom_connector()
2091 connector->interlace_allowed = true; in radeon_add_atom_connector()
2092 connector->doublescan_allowed = true; in radeon_add_atom_connector()
2145 connector->interlace_allowed = true; in radeon_add_atom_connector()
2147 connector->doublescan_allowed = true; in radeon_add_atom_connector()
2149 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()
2248 connector->interlace_allowed = true; in radeon_add_atom_connector()
2250 connector->doublescan_allowed = false; in radeon_add_atom_connector()
2271 connector->interlace_allowed = false; in radeon_add_atom_connector()
2272 connector->doublescan_allowed = false; in radeon_add_atom_connector()
2288 connector->interlace_allowed = false; in radeon_add_atom_connector()
2289 connector->doublescan_allowed = false; in radeon_add_atom_connector()
2308 connector->interlace_allowed = false; in radeon_add_atom_connector()
2309 connector->doublescan_allowed = false; in radeon_add_atom_connector()
2316 connector->polled = DRM_CONNECTOR_POLL_CONNECT | in radeon_add_atom_connector()
2320 connector->polled = DRM_CONNECTOR_POLL_HPD; in radeon_add_atom_connector()
2322 connector->display_info.subpixel_order = subpixel_order; in radeon_add_atom_connector()
2323 drm_connector_register(connector); in radeon_add_atom_connector()
2331 drm_connector_cleanup(connector); in radeon_add_atom_connector()
2332 kfree(connector); in radeon_add_atom_connector()
2345 struct drm_connector *connector; in radeon_add_legacy_connector() local
2360 list_for_each_entry(connector, &dev->mode_config.connector_list, head) { in radeon_add_legacy_connector()
2361 radeon_connector = to_radeon_connector(connector); in radeon_add_legacy_connector()
2372 connector = &radeon_connector->base; in radeon_add_legacy_connector()
2394 connector->interlace_allowed = true; in radeon_add_legacy_connector()
2395 connector->doublescan_allowed = true; in radeon_add_legacy_connector()
2411 connector->interlace_allowed = true; in radeon_add_legacy_connector()
2412 connector->doublescan_allowed = true; in radeon_add_legacy_connector()
2430 connector->interlace_allowed = true; in radeon_add_legacy_connector()
2432 connector->doublescan_allowed = true; in radeon_add_legacy_connector()
2434 connector->doublescan_allowed = false; in radeon_add_legacy_connector()
2457 connector->interlace_allowed = false; in radeon_add_legacy_connector()
2458 connector->doublescan_allowed = false; in radeon_add_legacy_connector()
2472 connector->interlace_allowed = false; in radeon_add_legacy_connector()
2473 connector->doublescan_allowed = false; in radeon_add_legacy_connector()
2479 connector->polled = DRM_CONNECTOR_POLL_CONNECT | in radeon_add_legacy_connector()
2483 connector->polled = DRM_CONNECTOR_POLL_HPD; in radeon_add_legacy_connector()
2485 connector->display_info.subpixel_order = subpixel_order; in radeon_add_legacy_connector()
2486 drm_connector_register(connector); in radeon_add_legacy_connector()
2492 struct drm_connector *connector; in radeon_setup_mst_connector() local
2501 list_for_each_entry(connector, &dev->mode_config.connector_list, head) { in radeon_setup_mst_connector()
2504 radeon_connector = to_radeon_connector(connector); in radeon_setup_mst_connector()
2506 if (connector->connector_type != DRM_MODE_CONNECTOR_DisplayPort) in radeon_setup_mst_connector()