Lines Matching refs:connector
39 static int radeon_dp_handle_hpd(struct drm_connector *connector) in radeon_dp_handle_hpd() argument
41 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_dp_handle_hpd()
49 void radeon_connector_hotplug(struct drm_connector *connector) in radeon_connector_hotplug() argument
51 struct drm_device *dev = connector->dev; in radeon_connector_hotplug()
53 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_connector_hotplug()
55 if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) { in radeon_connector_hotplug()
62 radeon_dp_handle_hpd(connector); in radeon_connector_hotplug()
76 if (connector->dpms != DRM_MODE_DPMS_ON) in radeon_connector_hotplug()
80 if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) { in radeon_connector_hotplug()
103 drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF); in radeon_connector_hotplug()
104 drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON); in radeon_connector_hotplug()
119 int radeon_get_monitor_bpc(struct drm_connector *connector) in radeon_get_monitor_bpc() argument
121 struct drm_device *dev = connector->dev; in radeon_get_monitor_bpc()
123 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_get_monitor_bpc()
128 switch (connector->connector_type) { in radeon_get_monitor_bpc()
132 if (drm_detect_hdmi_monitor(radeon_connector_edid(connector))) { in radeon_get_monitor_bpc()
133 if (connector->display_info.bpc) in radeon_get_monitor_bpc()
134 bpc = connector->display_info.bpc; in radeon_get_monitor_bpc()
140 if (drm_detect_hdmi_monitor(radeon_connector_edid(connector))) { in radeon_get_monitor_bpc()
141 if (connector->display_info.bpc) in radeon_get_monitor_bpc()
142 bpc = connector->display_info.bpc; in radeon_get_monitor_bpc()
149 drm_detect_hdmi_monitor(radeon_connector_edid(connector))) { in radeon_get_monitor_bpc()
150 if (connector->display_info.bpc) in radeon_get_monitor_bpc()
151 bpc = connector->display_info.bpc; in radeon_get_monitor_bpc()
156 if (connector->display_info.bpc) in radeon_get_monitor_bpc()
157 bpc = connector->display_info.bpc; in radeon_get_monitor_bpc()
160 connector->helper_private; in radeon_get_monitor_bpc()
161 struct drm_encoder *encoder = connector_funcs->best_encoder(connector); in radeon_get_monitor_bpc()
173 if (drm_detect_hdmi_monitor(radeon_connector_edid(connector))) { in radeon_get_monitor_bpc()
177 connector->name, bpc); in radeon_get_monitor_bpc()
189 connector->name, bpc); in radeon_get_monitor_bpc()
194 if (connector->display_info.max_tmds_clock > 0) { in radeon_get_monitor_bpc()
199 max_tmds_clock = connector->display_info.max_tmds_clock; in radeon_get_monitor_bpc()
202 connector->name, mode_clock, max_tmds_clock); in radeon_get_monitor_bpc()
206 if ((connector->display_info.edid_hdmi_dc_modes & DRM_EDID_HDMI_DC_30) && in radeon_get_monitor_bpc()
213 connector->name, bpc); in radeon_get_monitor_bpc()
219 connector->name, bpc); in radeon_get_monitor_bpc()
225 connector->name); in radeon_get_monitor_bpc()
232 connector->name); in radeon_get_monitor_bpc()
237 connector->name, connector->display_info.bpc, bpc); in radeon_get_monitor_bpc()
243 radeon_connector_update_scratch_regs(struct drm_connector *connector, enum drm_connector_status sta… in radeon_connector_update_scratch_regs() argument
245 struct drm_device *dev = connector->dev; in radeon_connector_update_scratch_regs()
249 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()
256 if (connector->encoder_ids[i] == 0) in radeon_connector_update_scratch_regs()
259 encoder = drm_encoder_find(connector->dev, in radeon_connector_update_scratch_regs()
260 connector->encoder_ids[i]); in radeon_connector_update_scratch_regs()
270 radeon_atombios_connected_scratch_regs(connector, encoder, connected); in radeon_connector_update_scratch_regs()
272 radeon_combios_connected_scratch_regs(connector, encoder, connected); in radeon_connector_update_scratch_regs()
277 static struct drm_encoder *radeon_find_encoder(struct drm_connector *connector, int encoder_type) in radeon_find_encoder() argument
283 if (connector->encoder_ids[i] == 0) in radeon_find_encoder()
286 encoder = drm_encoder_find(connector->dev, connector->encoder_ids[i]); in radeon_find_encoder()
296 struct edid *radeon_connector_edid(struct drm_connector *connector) in radeon_connector_edid() argument
298 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_connector_edid()
299 struct drm_property_blob *edid_blob = connector->edid_blob_ptr; in radeon_connector_edid()
311 static void radeon_connector_get_edid(struct drm_connector *connector) in radeon_connector_get_edid() argument
313 struct drm_device *dev = connector->dev; in radeon_connector_get_edid()
315 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_connector_get_edid()
324 if ((radeon_connector_encoder_get_dp_bridge_encoder_id(connector) != in radeon_connector_get_edid()
327 radeon_connector->edid = drm_get_edid(connector, in radeon_connector_get_edid()
329 } else if ((connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) || in radeon_connector_get_edid()
330 (connector->connector_type == DRM_MODE_CONNECTOR_eDP)) { in radeon_connector_get_edid()
342 connector->connector_type == DRM_MODE_CONNECTOR_LVDS && in radeon_connector_get_edid()
360 if (((connector->connector_type == DRM_MODE_CONNECTOR_LVDS) || in radeon_connector_get_edid()
361 (connector->connector_type == DRM_MODE_CONNECTOR_eDP))) in radeon_connector_get_edid()
370 static void radeon_connector_free_edid(struct drm_connector *connector) in radeon_connector_free_edid() argument
372 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_connector_free_edid()
380 static int radeon_ddc_get_modes(struct drm_connector *connector) in radeon_ddc_get_modes() argument
382 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_ddc_get_modes()
386 drm_mode_connector_update_edid_property(connector, radeon_connector->edid); in radeon_ddc_get_modes()
387 ret = drm_add_edid_modes(connector, radeon_connector->edid); in radeon_ddc_get_modes()
388 drm_edid_to_eld(connector, radeon_connector->edid); in radeon_ddc_get_modes()
391 drm_mode_connector_update_edid_property(connector, NULL); in radeon_ddc_get_modes()
395 static struct drm_encoder *radeon_best_single_encoder(struct drm_connector *connector) in radeon_best_single_encoder() argument
397 int enc_id = connector->encoder_ids[0]; in radeon_best_single_encoder()
400 return drm_encoder_find(connector->dev, enc_id); in radeon_best_single_encoder()
404 static void radeon_get_native_mode(struct drm_connector *connector) in radeon_get_native_mode() argument
406 struct drm_encoder *encoder = radeon_best_single_encoder(connector); in radeon_get_native_mode()
414 if (!list_empty(&connector->probed_modes)) { in radeon_get_native_mode()
416 list_first_entry(&connector->probed_modes, in radeon_get_native_mode()
432 radeon_connector_analog_encoder_conflict_solve(struct drm_connector *connector, in radeon_connector_analog_encoder_conflict_solve() argument
437 struct drm_device *dev = connector->dev; in radeon_connector_analog_encoder_conflict_solve()
443 if (conflict == connector) in radeon_connector_analog_encoder_conflict_solve()
463 connector->name); in radeon_connector_analog_encoder_conflict_solve()
468 connector->name); in radeon_connector_analog_encoder_conflict_solve()
512 static void radeon_add_common_modes(struct drm_encoder *encoder, struct drm_connector *connector) in radeon_add_common_modes() argument
559 drm_mode_probed_add(connector, mode); in radeon_add_common_modes()
563 static int radeon_connector_set_property(struct drm_connector *connector, struct drm_property *prop… in radeon_connector_set_property() argument
566 struct drm_device *dev = connector->dev; in radeon_connector_set_property()
576 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in radeon_connector_set_property()
594 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_connector_set_property()
596 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in radeon_connector_set_property()
609 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_connector_set_property()
611 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in radeon_connector_set_property()
625 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in radeon_connector_set_property()
639 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in radeon_connector_set_property()
653 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in radeon_connector_set_property()
666 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_TVDAC); in radeon_connector_set_property()
668 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_DAC); in radeon_connector_set_property()
691 to_radeon_connector(connector); in radeon_connector_set_property()
703 encoder = radeon_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in radeon_connector_set_property()
728 if (connector->encoder) in radeon_connector_set_property()
729 radeon_encoder = to_radeon_encoder(connector->encoder); in radeon_connector_set_property()
731 const struct drm_connector_helper_funcs *connector_funcs = connector->helper_private; in radeon_connector_set_property()
732 radeon_encoder = to_radeon_encoder(connector_funcs->best_encoder(connector)); in radeon_connector_set_property()
755 if (connector->encoder) in radeon_connector_set_property()
756 radeon_encoder = to_radeon_encoder(connector->encoder); in radeon_connector_set_property()
758 const struct drm_connector_helper_funcs *connector_funcs = connector->helper_private; in radeon_connector_set_property()
759 radeon_encoder = to_radeon_encoder(connector_funcs->best_encoder(connector)); in radeon_connector_set_property()
767 if (connector->encoder->crtc) { in radeon_connector_set_property()
768 struct drm_crtc *crtc = connector->encoder->crtc; in radeon_connector_set_property()
782 struct drm_connector *connector) in radeon_fixup_lvds_native_mode() argument
789 list_for_each_entry_safe(mode, t, &connector->probed_modes, head) { in radeon_fixup_lvds_native_mode()
799 list_for_each_entry_safe(mode, t, &connector->probed_modes, head) { in radeon_fixup_lvds_native_mode()
816 static int radeon_lvds_get_modes(struct drm_connector *connector) in radeon_lvds_get_modes() argument
822 radeon_connector_get_edid(connector); in radeon_lvds_get_modes()
823 ret = radeon_ddc_get_modes(connector); in radeon_lvds_get_modes()
825 encoder = radeon_best_single_encoder(connector); in radeon_lvds_get_modes()
827 radeon_fixup_lvds_native_mode(encoder, connector); in radeon_lvds_get_modes()
829 radeon_add_common_modes(encoder, connector); in radeon_lvds_get_modes()
834 encoder = radeon_best_single_encoder(connector); in radeon_lvds_get_modes()
842 drm_mode_probed_add(connector, mode); in radeon_lvds_get_modes()
844 connector->display_info.width_mm = mode->width_mm; in radeon_lvds_get_modes()
845 connector->display_info.height_mm = mode->height_mm; in radeon_lvds_get_modes()
847 radeon_add_common_modes(encoder, connector); in radeon_lvds_get_modes()
853 static int radeon_lvds_mode_valid(struct drm_connector *connector, in radeon_lvds_mode_valid() argument
856 struct drm_encoder *encoder = radeon_best_single_encoder(connector); in radeon_lvds_mode_valid()
884 radeon_lvds_detect(struct drm_connector *connector, bool force) in radeon_lvds_detect() argument
886 struct drm_device *dev = connector->dev; in radeon_lvds_detect()
888 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_lvds_detect()
889 struct drm_encoder *encoder = radeon_best_single_encoder(connector); in radeon_lvds_detect()
894 r = pm_runtime_get_sync(connector->dev->dev); in radeon_lvds_detect()
914 radeon_connector_get_edid(connector); in radeon_lvds_detect()
919 radeon_connector_update_scratch_regs(connector, ret); in radeon_lvds_detect()
922 pm_runtime_mark_last_busy(connector->dev->dev); in radeon_lvds_detect()
923 pm_runtime_put_autosuspend(connector->dev->dev); in radeon_lvds_detect()
929 static void radeon_connector_unregister(struct drm_connector *connector) in radeon_connector_unregister() argument
931 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_connector_unregister()
939 static void radeon_connector_destroy(struct drm_connector *connector) in radeon_connector_destroy() argument
941 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_connector_destroy()
943 radeon_connector_free_edid(connector); in radeon_connector_destroy()
945 drm_connector_unregister(connector); in radeon_connector_destroy()
946 drm_connector_cleanup(connector); in radeon_connector_destroy()
947 kfree(connector); in radeon_connector_destroy()
950 static int radeon_lvds_set_property(struct drm_connector *connector, in radeon_lvds_set_property() argument
954 struct drm_device *dev = connector->dev; in radeon_lvds_set_property()
962 if (connector->encoder) in radeon_lvds_set_property()
963 radeon_encoder = to_radeon_encoder(connector->encoder); in radeon_lvds_set_property()
965 const struct drm_connector_helper_funcs *connector_funcs = connector->helper_private; in radeon_lvds_set_property()
966 radeon_encoder = to_radeon_encoder(connector_funcs->best_encoder(connector)); in radeon_lvds_set_property()
1001 static int radeon_vga_get_modes(struct drm_connector *connector) in radeon_vga_get_modes() argument
1005 radeon_connector_get_edid(connector); in radeon_vga_get_modes()
1006 ret = radeon_ddc_get_modes(connector); in radeon_vga_get_modes()
1008 radeon_get_native_mode(connector); in radeon_vga_get_modes()
1013 static int radeon_vga_mode_valid(struct drm_connector *connector, in radeon_vga_mode_valid() argument
1016 struct drm_device *dev = connector->dev; in radeon_vga_mode_valid()
1028 radeon_vga_detect(struct drm_connector *connector, bool force) in radeon_vga_detect() argument
1030 struct drm_device *dev = connector->dev; in radeon_vga_detect()
1032 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_vga_detect()
1040 r = pm_runtime_get_sync(connector->dev->dev); in radeon_vga_detect()
1045 encoder = radeon_best_single_encoder(connector); in radeon_vga_detect()
1053 radeon_connector_free_edid(connector); in radeon_vga_detect()
1054 radeon_connector_get_edid(connector); in radeon_vga_detect()
1058 connector->name); in radeon_vga_detect()
1068 radeon_connector_free_edid(connector); in radeon_vga_detect()
1082 ret = connector->status; in radeon_vga_detect()
1088 ret = encoder_funcs->detect(encoder, connector); in radeon_vga_detect()
1095 ret = radeon_connector_analog_encoder_conflict_solve(connector, encoder, ret, true); in radeon_vga_detect()
1107 radeon_connector_update_scratch_regs(connector, ret); in radeon_vga_detect()
1111 pm_runtime_mark_last_busy(connector->dev->dev); in radeon_vga_detect()
1112 pm_runtime_put_autosuspend(connector->dev->dev); in radeon_vga_detect()
1133 static int radeon_tv_get_modes(struct drm_connector *connector) in radeon_tv_get_modes() argument
1135 struct drm_device *dev = connector->dev; in radeon_tv_get_modes()
1140 encoder = radeon_best_single_encoder(connector); in radeon_tv_get_modes()
1147 radeon_add_common_modes(encoder, connector); in radeon_tv_get_modes()
1152 drm_mode_probed_add(connector, tv_mode); in radeon_tv_get_modes()
1157 static int radeon_tv_mode_valid(struct drm_connector *connector, in radeon_tv_mode_valid() argument
1166 radeon_tv_detect(struct drm_connector *connector, bool force) in radeon_tv_detect() argument
1170 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_tv_detect()
1178 r = pm_runtime_get_sync(connector->dev->dev); in radeon_tv_detect()
1183 encoder = radeon_best_single_encoder(connector); in radeon_tv_detect()
1188 ret = encoder_funcs->detect(encoder, connector); in radeon_tv_detect()
1191 ret = radeon_connector_analog_encoder_conflict_solve(connector, encoder, ret, false); in radeon_tv_detect()
1192 radeon_connector_update_scratch_regs(connector, ret); in radeon_tv_detect()
1195 pm_runtime_mark_last_busy(connector->dev->dev); in radeon_tv_detect()
1196 pm_runtime_put_autosuspend(connector->dev->dev); in radeon_tv_detect()
1217 static bool radeon_check_hpd_status_unchanged(struct drm_connector *connector) in radeon_check_hpd_status_unchanged() argument
1219 struct drm_device *dev = connector->dev; in radeon_check_hpd_status_unchanged()
1221 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_check_hpd_status_unchanged()
1231 if (connector->status == status) in radeon_check_hpd_status_unchanged()
1250 radeon_dvi_detect(struct drm_connector *connector, bool force) in radeon_dvi_detect() argument
1252 struct drm_device *dev = connector->dev; in radeon_dvi_detect()
1254 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_dvi_detect()
1262 r = pm_runtime_get_sync(connector->dev->dev); in radeon_dvi_detect()
1272 if (!force && radeon_check_hpd_status_unchanged(connector)) { in radeon_dvi_detect()
1273 ret = connector->status; in radeon_dvi_detect()
1285 connector->status != connector_status_connected) { in radeon_dvi_detect()
1295 radeon_connector_free_edid(connector); in radeon_dvi_detect()
1296 radeon_connector_get_edid(connector); in radeon_dvi_detect()
1300 connector->name); in radeon_dvi_detect()
1307 connector->name); in radeon_dvi_detect()
1321 radeon_connector_free_edid(connector); in radeon_dvi_detect()
1335 if (connector == list_connector) in radeon_dvi_detect()
1345 radeon_connector_free_edid(connector); in radeon_dvi_detect()
1359 if ((connector->connector_type == DRM_MODE_CONNECTOR_DVID) || in radeon_dvi_detect()
1360 (connector->connector_type == DRM_MODE_CONNECTOR_HDMIA)) in radeon_dvi_detect()
1369 ret = connector->status; in radeon_dvi_detect()
1376 if (connector->encoder_ids[i] == 0) in radeon_dvi_detect()
1379 encoder = drm_encoder_find(connector->dev, in radeon_dvi_detect()
1380 connector->encoder_ids[i]); in radeon_dvi_detect()
1393 ret = encoder_funcs->detect(encoder, connector); in radeon_dvi_detect()
1404 lret = encoder_funcs->detect(encoder, connector); in radeon_dvi_detect()
1416 ret = radeon_connector_analog_encoder_conflict_solve(connector, encoder, ret, true); in radeon_dvi_detect()
1434 radeon_connector_update_scratch_regs(connector, ret); in radeon_dvi_detect()
1438 connector->helper_private; in radeon_dvi_detect()
1440 encoder = connector_funcs->best_encoder(connector); in radeon_dvi_detect()
1442 radeon_connector_get_edid(connector); in radeon_dvi_detect()
1443 radeon_audio_detect(connector, encoder, ret); in radeon_dvi_detect()
1449 pm_runtime_mark_last_busy(connector->dev->dev); in radeon_dvi_detect()
1450 pm_runtime_put_autosuspend(connector->dev->dev); in radeon_dvi_detect()
1457 static struct drm_encoder *radeon_dvi_encoder(struct drm_connector *connector) in radeon_dvi_encoder() argument
1459 int enc_id = connector->encoder_ids[0]; in radeon_dvi_encoder()
1460 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_dvi_encoder()
1464 if (connector->encoder_ids[i] == 0) in radeon_dvi_encoder()
1467 encoder = drm_encoder_find(connector->dev, connector->encoder_ids[i]); in radeon_dvi_encoder()
1486 return drm_encoder_find(connector->dev, enc_id); in radeon_dvi_encoder()
1490 static void radeon_dvi_force(struct drm_connector *connector) in radeon_dvi_force() argument
1492 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_dvi_force()
1493 if (connector->force == DRM_FORCE_ON) in radeon_dvi_force()
1495 if (connector->force == DRM_FORCE_ON_DIGITAL) in radeon_dvi_force()
1499 static int radeon_dvi_mode_valid(struct drm_connector *connector, in radeon_dvi_mode_valid() argument
1502 struct drm_device *dev = connector->dev; in radeon_dvi_mode_valid()
1504 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_dvi_mode_valid()
1519 else if (ASIC_IS_DCE6(rdev) && drm_detect_hdmi_monitor(radeon_connector_edid(connector))) { in radeon_dvi_mode_valid()
1553 static int radeon_dp_get_modes(struct drm_connector *connector) in radeon_dp_get_modes() argument
1555 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_dp_get_modes()
1557 struct drm_encoder *encoder = radeon_best_single_encoder(connector); in radeon_dp_get_modes()
1560 if ((connector->connector_type == DRM_MODE_CONNECTOR_eDP) || in radeon_dp_get_modes()
1561 (connector->connector_type == DRM_MODE_CONNECTOR_LVDS)) { in radeon_dp_get_modes()
1564 if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) { in radeon_dp_get_modes()
1566 atombios_set_edp_panel_power(connector, in radeon_dp_get_modes()
1568 radeon_connector_get_edid(connector); in radeon_dp_get_modes()
1569 ret = radeon_ddc_get_modes(connector); in radeon_dp_get_modes()
1571 atombios_set_edp_panel_power(connector, in radeon_dp_get_modes()
1575 if (radeon_connector_encoder_get_dp_bridge_encoder_id(connector) != in radeon_dp_get_modes()
1580 radeon_connector_get_edid(connector); in radeon_dp_get_modes()
1581 ret = radeon_ddc_get_modes(connector); in radeon_dp_get_modes()
1586 radeon_fixup_lvds_native_mode(encoder, connector); in radeon_dp_get_modes()
1588 radeon_add_common_modes(encoder, connector); in radeon_dp_get_modes()
1600 drm_mode_probed_add(connector, mode); in radeon_dp_get_modes()
1602 connector->display_info.width_mm = mode->width_mm; in radeon_dp_get_modes()
1603 connector->display_info.height_mm = mode->height_mm; in radeon_dp_get_modes()
1605 radeon_add_common_modes(encoder, connector); in radeon_dp_get_modes()
1609 if (radeon_connector_encoder_get_dp_bridge_encoder_id(connector) != in radeon_dp_get_modes()
1614 radeon_connector_get_edid(connector); in radeon_dp_get_modes()
1615 ret = radeon_ddc_get_modes(connector); in radeon_dp_get_modes()
1617 radeon_get_native_mode(connector); in radeon_dp_get_modes()
1623 u16 radeon_connector_encoder_get_dp_bridge_encoder_id(struct drm_connector *connector) in radeon_connector_encoder_get_dp_bridge_encoder_id() argument
1630 if (connector->encoder_ids[i] == 0) in radeon_connector_encoder_get_dp_bridge_encoder_id()
1633 encoder = drm_encoder_find(connector->dev, connector->encoder_ids[i]); in radeon_connector_encoder_get_dp_bridge_encoder_id()
1651 static bool radeon_connector_encoder_is_hbr2(struct drm_connector *connector) in radeon_connector_encoder_is_hbr2() argument
1659 if (connector->encoder_ids[i] == 0) in radeon_connector_encoder_is_hbr2()
1662 encoder = drm_encoder_find(connector->dev, connector->encoder_ids[i]); in radeon_connector_encoder_is_hbr2()
1674 bool radeon_connector_is_dp12_capable(struct drm_connector *connector) in radeon_connector_is_dp12_capable() argument
1676 struct drm_device *dev = connector->dev; in radeon_connector_is_dp12_capable()
1681 radeon_connector_encoder_is_hbr2(connector)) { in radeon_connector_is_dp12_capable()
1689 radeon_dp_detect(struct drm_connector *connector, bool force) in radeon_dp_detect() argument
1691 struct drm_device *dev = connector->dev; in radeon_dp_detect()
1693 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_dp_detect()
1696 struct drm_encoder *encoder = radeon_best_single_encoder(connector); in radeon_dp_detect()
1703 r = pm_runtime_get_sync(connector->dev->dev); in radeon_dp_detect()
1708 if (!force && radeon_check_hpd_status_unchanged(connector)) { in radeon_dp_detect()
1709 ret = connector->status; in radeon_dp_detect()
1713 radeon_connector_free_edid(connector); in radeon_dp_detect()
1715 if ((connector->connector_type == DRM_MODE_CONNECTOR_eDP) || in radeon_dp_detect()
1716 (connector->connector_type == DRM_MODE_CONNECTOR_LVDS)) { in radeon_dp_detect()
1733 atombios_set_edp_panel_power(connector, in radeon_dp_detect()
1738 atombios_set_edp_panel_power(connector, in radeon_dp_detect()
1740 } else if (radeon_connector_encoder_get_dp_bridge_encoder_id(connector) != in radeon_dp_detect()
1755 ret = encoder_funcs->detect(encoder, connector); in radeon_dp_detect()
1785 radeon_connector_update_scratch_regs(connector, ret); in radeon_dp_detect()
1788 radeon_connector_get_edid(connector); in radeon_dp_detect()
1789 radeon_audio_detect(connector, encoder, ret); in radeon_dp_detect()
1794 pm_runtime_mark_last_busy(connector->dev->dev); in radeon_dp_detect()
1795 pm_runtime_put_autosuspend(connector->dev->dev); in radeon_dp_detect()
1801 static int radeon_dp_mode_valid(struct drm_connector *connector, in radeon_dp_mode_valid() argument
1804 struct drm_device *dev = connector->dev; in radeon_dp_mode_valid()
1806 struct radeon_connector *radeon_connector = to_radeon_connector(connector); in radeon_dp_mode_valid()
1811 if ((connector->connector_type == DRM_MODE_CONNECTOR_eDP) || in radeon_dp_mode_valid()
1812 (connector->connector_type == DRM_MODE_CONNECTOR_LVDS)) { in radeon_dp_mode_valid()
1813 struct drm_encoder *encoder = radeon_best_single_encoder(connector); in radeon_dp_mode_valid()
1839 return radeon_dp_mode_valid_helper(connector, mode); in radeon_dp_mode_valid()
1841 if (ASIC_IS_DCE6(rdev) && drm_detect_hdmi_monitor(radeon_connector_edid(connector))) { in radeon_dp_mode_valid()
1903 struct drm_connector *connector; in radeon_add_atom_connector() local
1924 list_for_each_entry(connector, &dev->mode_config.connector_list, head) { in radeon_add_atom_connector()
1925 radeon_connector = to_radeon_connector(connector); in radeon_add_atom_connector()
1962 connector = &radeon_connector->base; in radeon_add_atom_connector()
1998 connector->interlace_allowed = true; in radeon_add_atom_connector()
1999 connector->doublescan_allowed = true; in radeon_add_atom_connector()
2051 connector->interlace_allowed = true; in radeon_add_atom_connector()
2053 connector->doublescan_allowed = true; in radeon_add_atom_connector()
2055 connector->doublescan_allowed = false; in radeon_add_atom_connector()
2073 connector->interlace_allowed = false; in radeon_add_atom_connector()
2074 connector->doublescan_allowed = false; in radeon_add_atom_connector()
2101 connector->interlace_allowed = true; in radeon_add_atom_connector()
2102 connector->doublescan_allowed = true; in radeon_add_atom_connector()
2126 connector->interlace_allowed = true; in radeon_add_atom_connector()
2127 connector->doublescan_allowed = true; in radeon_add_atom_connector()
2180 connector->interlace_allowed = true; in radeon_add_atom_connector()
2182 connector->doublescan_allowed = true; in radeon_add_atom_connector()
2184 connector->doublescan_allowed = false; in radeon_add_atom_connector()
2231 connector->interlace_allowed = true; in radeon_add_atom_connector()
2233 connector->doublescan_allowed = true; in radeon_add_atom_connector()
2235 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()
2306 connector->interlace_allowed = false; in radeon_add_atom_connector()
2307 connector->doublescan_allowed = false; in radeon_add_atom_connector()
2323 connector->interlace_allowed = false; in radeon_add_atom_connector()
2324 connector->doublescan_allowed = false; in radeon_add_atom_connector()
2343 connector->interlace_allowed = false; in radeon_add_atom_connector()
2344 connector->doublescan_allowed = false; in radeon_add_atom_connector()
2351 connector->polled = DRM_CONNECTOR_POLL_CONNECT | in radeon_add_atom_connector()
2355 connector->polled = DRM_CONNECTOR_POLL_HPD; in radeon_add_atom_connector()
2357 connector->display_info.subpixel_order = subpixel_order; in radeon_add_atom_connector()
2358 drm_connector_register(connector); in radeon_add_atom_connector()
2366 drm_connector_cleanup(connector); in radeon_add_atom_connector()
2367 kfree(connector); in radeon_add_atom_connector()
2380 struct drm_connector *connector; in radeon_add_legacy_connector() local
2395 list_for_each_entry(connector, &dev->mode_config.connector_list, head) { in radeon_add_legacy_connector()
2396 radeon_connector = to_radeon_connector(connector); in radeon_add_legacy_connector()
2407 connector = &radeon_connector->base; in radeon_add_legacy_connector()
2429 connector->interlace_allowed = true; in radeon_add_legacy_connector()
2430 connector->doublescan_allowed = true; in radeon_add_legacy_connector()
2446 connector->interlace_allowed = true; in radeon_add_legacy_connector()
2447 connector->doublescan_allowed = true; in radeon_add_legacy_connector()
2465 connector->interlace_allowed = true; in radeon_add_legacy_connector()
2467 connector->doublescan_allowed = true; in radeon_add_legacy_connector()
2469 connector->doublescan_allowed = false; in radeon_add_legacy_connector()
2492 connector->interlace_allowed = false; in radeon_add_legacy_connector()
2493 connector->doublescan_allowed = false; in radeon_add_legacy_connector()
2507 connector->interlace_allowed = false; in radeon_add_legacy_connector()
2508 connector->doublescan_allowed = false; in radeon_add_legacy_connector()
2514 connector->polled = DRM_CONNECTOR_POLL_CONNECT | in radeon_add_legacy_connector()
2518 connector->polled = DRM_CONNECTOR_POLL_HPD; in radeon_add_legacy_connector()
2520 connector->display_info.subpixel_order = subpixel_order; in radeon_add_legacy_connector()
2521 drm_connector_register(connector); in radeon_add_legacy_connector()
2527 struct drm_connector *connector; in radeon_setup_mst_connector() local
2536 list_for_each_entry(connector, &dev->mode_config.connector_list, head) { in radeon_setup_mst_connector()
2539 radeon_connector = to_radeon_connector(connector); in radeon_setup_mst_connector()
2541 if (connector->connector_type != DRM_MODE_CONNECTOR_DisplayPort) in radeon_setup_mst_connector()