Lines Matching refs:connector

41 void amdgpu_connector_hotplug(struct drm_connector *connector)  in amdgpu_connector_hotplug()  argument
43 struct drm_device *dev = connector->dev; in amdgpu_connector_hotplug()
45 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_hotplug()
56 if (connector->dpms != DRM_MODE_DPMS_ON) in amdgpu_connector_hotplug()
60 if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) { in amdgpu_connector_hotplug()
83 drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF); in amdgpu_connector_hotplug()
84 drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON); in amdgpu_connector_hotplug()
99 int amdgpu_connector_get_monitor_bpc(struct drm_connector *connector) in amdgpu_connector_get_monitor_bpc() argument
101 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_get_monitor_bpc()
106 switch (connector->connector_type) { in amdgpu_connector_get_monitor_bpc()
110 if (drm_detect_hdmi_monitor(amdgpu_connector_edid(connector))) { in amdgpu_connector_get_monitor_bpc()
111 if (connector->display_info.bpc) in amdgpu_connector_get_monitor_bpc()
112 bpc = connector->display_info.bpc; in amdgpu_connector_get_monitor_bpc()
118 if (drm_detect_hdmi_monitor(amdgpu_connector_edid(connector))) { in amdgpu_connector_get_monitor_bpc()
119 if (connector->display_info.bpc) in amdgpu_connector_get_monitor_bpc()
120 bpc = connector->display_info.bpc; in amdgpu_connector_get_monitor_bpc()
127 drm_detect_hdmi_monitor(amdgpu_connector_edid(connector))) { in amdgpu_connector_get_monitor_bpc()
128 if (connector->display_info.bpc) in amdgpu_connector_get_monitor_bpc()
129 bpc = connector->display_info.bpc; in amdgpu_connector_get_monitor_bpc()
134 if (connector->display_info.bpc) in amdgpu_connector_get_monitor_bpc()
135 bpc = connector->display_info.bpc; in amdgpu_connector_get_monitor_bpc()
138 connector->helper_private; in amdgpu_connector_get_monitor_bpc()
139 struct drm_encoder *encoder = connector_funcs->best_encoder(connector); in amdgpu_connector_get_monitor_bpc()
151 if (drm_detect_hdmi_monitor(amdgpu_connector_edid(connector))) { in amdgpu_connector_get_monitor_bpc()
160 connector->name, bpc); in amdgpu_connector_get_monitor_bpc()
165 if (connector->display_info.max_tmds_clock > 0) { in amdgpu_connector_get_monitor_bpc()
170 max_tmds_clock = connector->display_info.max_tmds_clock; in amdgpu_connector_get_monitor_bpc()
173 connector->name, mode_clock, max_tmds_clock); in amdgpu_connector_get_monitor_bpc()
177 if ((connector->display_info.edid_hdmi_dc_modes & DRM_EDID_HDMI_DC_30) && in amdgpu_connector_get_monitor_bpc()
184 connector->name, bpc); in amdgpu_connector_get_monitor_bpc()
190 connector->name, bpc); in amdgpu_connector_get_monitor_bpc()
195 connector->name); in amdgpu_connector_get_monitor_bpc()
202 connector->name); in amdgpu_connector_get_monitor_bpc()
207 connector->name, connector->display_info.bpc, bpc); in amdgpu_connector_get_monitor_bpc()
213 amdgpu_connector_update_scratch_regs(struct drm_connector *connector, in amdgpu_connector_update_scratch_regs() argument
218 const struct drm_connector_helper_funcs *connector_funcs = connector->helper_private; in amdgpu_connector_update_scratch_regs()
222 best_encoder = connector_funcs->best_encoder(connector); in amdgpu_connector_update_scratch_regs()
224 drm_connector_for_each_possible_encoder(connector, encoder, i) { in amdgpu_connector_update_scratch_regs()
230 amdgpu_atombios_encoder_set_bios_scratch_regs(connector, encoder, connected); in amdgpu_connector_update_scratch_regs()
235 amdgpu_connector_find_encoder(struct drm_connector *connector, in amdgpu_connector_find_encoder() argument
241 drm_connector_for_each_possible_encoder(connector, encoder, i) { in amdgpu_connector_find_encoder()
249 struct edid *amdgpu_connector_edid(struct drm_connector *connector) in amdgpu_connector_edid() argument
251 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_edid()
252 struct drm_property_blob *edid_blob = connector->edid_blob_ptr; in amdgpu_connector_edid()
281 static void amdgpu_connector_get_edid(struct drm_connector *connector) in amdgpu_connector_get_edid() argument
283 struct drm_device *dev = connector->dev; in amdgpu_connector_get_edid()
285 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_get_edid()
294 if ((amdgpu_connector_encoder_get_dp_bridge_encoder_id(connector) != in amdgpu_connector_get_edid()
297 amdgpu_connector->edid = drm_get_edid(connector, in amdgpu_connector_get_edid()
299 } else if ((connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) || in amdgpu_connector_get_edid()
300 (connector->connector_type == DRM_MODE_CONNECTOR_eDP)) { in amdgpu_connector_get_edid()
306 amdgpu_connector->edid = drm_get_edid(connector, in amdgpu_connector_get_edid()
309 amdgpu_connector->edid = drm_get_edid(connector, in amdgpu_connector_get_edid()
312 amdgpu_connector->edid = drm_get_edid(connector, in amdgpu_connector_get_edid()
318 if (((connector->connector_type == DRM_MODE_CONNECTOR_LVDS) || in amdgpu_connector_get_edid()
319 (connector->connector_type == DRM_MODE_CONNECTOR_eDP))) in amdgpu_connector_get_edid()
324 static void amdgpu_connector_free_edid(struct drm_connector *connector) in amdgpu_connector_free_edid() argument
326 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_free_edid()
332 static int amdgpu_connector_ddc_get_modes(struct drm_connector *connector) in amdgpu_connector_ddc_get_modes() argument
334 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_ddc_get_modes()
338 drm_connector_update_edid_property(connector, amdgpu_connector->edid); in amdgpu_connector_ddc_get_modes()
339 ret = drm_add_edid_modes(connector, amdgpu_connector->edid); in amdgpu_connector_ddc_get_modes()
342 drm_connector_update_edid_property(connector, NULL); in amdgpu_connector_ddc_get_modes()
347 amdgpu_connector_best_single_encoder(struct drm_connector *connector) in amdgpu_connector_best_single_encoder() argument
353 drm_connector_for_each_possible_encoder(connector, encoder, i) in amdgpu_connector_best_single_encoder()
359 static void amdgpu_get_native_mode(struct drm_connector *connector) in amdgpu_get_native_mode() argument
361 struct drm_encoder *encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_get_native_mode()
369 if (!list_empty(&connector->probed_modes)) { in amdgpu_get_native_mode()
371 list_first_entry(&connector->probed_modes, in amdgpu_get_native_mode()
413 struct drm_connector *connector) in amdgpu_connector_add_common_modes() argument
460 drm_mode_probed_add(connector, mode); in amdgpu_connector_add_common_modes()
464 static int amdgpu_connector_set_property(struct drm_connector *connector, in amdgpu_connector_set_property() argument
468 struct drm_device *dev = connector->dev; in amdgpu_connector_set_property()
478 encoder = amdgpu_connector_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in amdgpu_connector_set_property()
496 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_set_property()
498 encoder = amdgpu_connector_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in amdgpu_connector_set_property()
511 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_set_property()
513 encoder = amdgpu_connector_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in amdgpu_connector_set_property()
527 encoder = amdgpu_connector_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in amdgpu_connector_set_property()
541 encoder = amdgpu_connector_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in amdgpu_connector_set_property()
555 encoder = amdgpu_connector_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in amdgpu_connector_set_property()
569 to_amdgpu_connector(connector); in amdgpu_connector_set_property()
580 if (connector->encoder) { in amdgpu_connector_set_property()
581 amdgpu_encoder = to_amdgpu_encoder(connector->encoder); in amdgpu_connector_set_property()
583 const struct drm_connector_helper_funcs *connector_funcs = connector->helper_private; in amdgpu_connector_set_property()
584 amdgpu_encoder = to_amdgpu_encoder(connector_funcs->best_encoder(connector)); in amdgpu_connector_set_property()
611 struct drm_connector *connector) in amdgpu_connector_fixup_lcd_native_mode() argument
618 list_for_each_entry_safe(mode, t, &connector->probed_modes, head) { in amdgpu_connector_fixup_lcd_native_mode()
628 list_for_each_entry_safe(mode, t, &connector->probed_modes, head) { in amdgpu_connector_fixup_lcd_native_mode()
645 static int amdgpu_connector_lvds_get_modes(struct drm_connector *connector) in amdgpu_connector_lvds_get_modes() argument
651 amdgpu_connector_get_edid(connector); in amdgpu_connector_lvds_get_modes()
652 ret = amdgpu_connector_ddc_get_modes(connector); in amdgpu_connector_lvds_get_modes()
654 encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_connector_lvds_get_modes()
656 amdgpu_connector_fixup_lcd_native_mode(encoder, connector); in amdgpu_connector_lvds_get_modes()
658 amdgpu_connector_add_common_modes(encoder, connector); in amdgpu_connector_lvds_get_modes()
663 encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_connector_lvds_get_modes()
671 drm_mode_probed_add(connector, mode); in amdgpu_connector_lvds_get_modes()
673 connector->display_info.width_mm = mode->width_mm; in amdgpu_connector_lvds_get_modes()
674 connector->display_info.height_mm = mode->height_mm; in amdgpu_connector_lvds_get_modes()
676 amdgpu_connector_add_common_modes(encoder, connector); in amdgpu_connector_lvds_get_modes()
682 static enum drm_mode_status amdgpu_connector_lvds_mode_valid(struct drm_connector *connector, in amdgpu_connector_lvds_mode_valid() argument
685 struct drm_encoder *encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_connector_lvds_mode_valid()
713 amdgpu_connector_lvds_detect(struct drm_connector *connector, bool force) in amdgpu_connector_lvds_detect() argument
715 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_lvds_detect()
716 struct drm_encoder *encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_connector_lvds_detect()
721 r = pm_runtime_get_sync(connector->dev->dev); in amdgpu_connector_lvds_detect()
737 amdgpu_connector_get_edid(connector); in amdgpu_connector_lvds_detect()
742 amdgpu_connector_update_scratch_regs(connector, ret); in amdgpu_connector_lvds_detect()
745 pm_runtime_mark_last_busy(connector->dev->dev); in amdgpu_connector_lvds_detect()
746 pm_runtime_put_autosuspend(connector->dev->dev); in amdgpu_connector_lvds_detect()
752 static void amdgpu_connector_unregister(struct drm_connector *connector) in amdgpu_connector_unregister() argument
754 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_unregister()
762 static void amdgpu_connector_destroy(struct drm_connector *connector) in amdgpu_connector_destroy() argument
764 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_destroy()
766 amdgpu_connector_free_edid(connector); in amdgpu_connector_destroy()
768 drm_connector_unregister(connector); in amdgpu_connector_destroy()
769 drm_connector_cleanup(connector); in amdgpu_connector_destroy()
770 kfree(connector); in amdgpu_connector_destroy()
773 static int amdgpu_connector_set_lcd_property(struct drm_connector *connector, in amdgpu_connector_set_lcd_property() argument
777 struct drm_device *dev = connector->dev; in amdgpu_connector_set_lcd_property()
785 if (connector->encoder) in amdgpu_connector_set_lcd_property()
786 amdgpu_encoder = to_amdgpu_encoder(connector->encoder); in amdgpu_connector_set_lcd_property()
788 const struct drm_connector_helper_funcs *connector_funcs = connector->helper_private; in amdgpu_connector_set_lcd_property()
789 amdgpu_encoder = to_amdgpu_encoder(connector_funcs->best_encoder(connector)); in amdgpu_connector_set_lcd_property()
824 static int amdgpu_connector_vga_get_modes(struct drm_connector *connector) in amdgpu_connector_vga_get_modes() argument
828 amdgpu_connector_get_edid(connector); in amdgpu_connector_vga_get_modes()
829 ret = amdgpu_connector_ddc_get_modes(connector); in amdgpu_connector_vga_get_modes()
834 static enum drm_mode_status amdgpu_connector_vga_mode_valid(struct drm_connector *connector, in amdgpu_connector_vga_mode_valid() argument
837 struct drm_device *dev = connector->dev; in amdgpu_connector_vga_mode_valid()
849 amdgpu_connector_vga_detect(struct drm_connector *connector, bool force) in amdgpu_connector_vga_detect() argument
851 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_vga_detect()
859 r = pm_runtime_get_sync(connector->dev->dev); in amdgpu_connector_vga_detect()
864 encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_connector_vga_detect()
872 amdgpu_connector_free_edid(connector); in amdgpu_connector_vga_detect()
873 amdgpu_connector_get_edid(connector); in amdgpu_connector_vga_detect()
877 connector->name); in amdgpu_connector_vga_detect()
887 amdgpu_connector_free_edid(connector); in amdgpu_connector_vga_detect()
901 ret = connector->status; in amdgpu_connector_vga_detect()
907 ret = encoder_funcs->detect(encoder, connector); in amdgpu_connector_vga_detect()
913 amdgpu_connector_update_scratch_regs(connector, ret); in amdgpu_connector_vga_detect()
917 pm_runtime_mark_last_busy(connector->dev->dev); in amdgpu_connector_vga_detect()
918 pm_runtime_put_autosuspend(connector->dev->dev); in amdgpu_connector_vga_detect()
940 amdgpu_connector_check_hpd_status_unchanged(struct drm_connector *connector) in amdgpu_connector_check_hpd_status_unchanged() argument
942 struct drm_device *dev = connector->dev; in amdgpu_connector_check_hpd_status_unchanged()
944 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_check_hpd_status_unchanged()
952 if (connector->status == status) in amdgpu_connector_check_hpd_status_unchanged()
971 amdgpu_connector_dvi_detect(struct drm_connector *connector, bool force) in amdgpu_connector_dvi_detect() argument
973 struct drm_device *dev = connector->dev; in amdgpu_connector_dvi_detect()
975 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_dvi_detect()
982 r = pm_runtime_get_sync(connector->dev->dev); in amdgpu_connector_dvi_detect()
987 if (!force && amdgpu_connector_check_hpd_status_unchanged(connector)) { in amdgpu_connector_dvi_detect()
988 ret = connector->status; in amdgpu_connector_dvi_detect()
996 amdgpu_connector_free_edid(connector); in amdgpu_connector_dvi_detect()
997 amdgpu_connector_get_edid(connector); in amdgpu_connector_dvi_detect()
1001 connector->name); in amdgpu_connector_dvi_detect()
1012 amdgpu_connector_free_edid(connector); in amdgpu_connector_dvi_detect()
1027 if (connector == list_connector) in amdgpu_connector_dvi_detect()
1037 amdgpu_connector_free_edid(connector); in amdgpu_connector_dvi_detect()
1051 if ((connector->connector_type == DRM_MODE_CONNECTOR_DVID) || in amdgpu_connector_dvi_detect()
1052 (connector->connector_type == DRM_MODE_CONNECTOR_HDMIA)) in amdgpu_connector_dvi_detect()
1061 ret = connector->status; in amdgpu_connector_dvi_detect()
1070 drm_connector_for_each_possible_encoder(connector, encoder, i) { in amdgpu_connector_dvi_detect()
1080 ret = encoder_funcs->detect(encoder, connector); in amdgpu_connector_dvi_detect()
1091 lret = encoder_funcs->detect(encoder, connector); in amdgpu_connector_dvi_detect()
1103 amdgpu_connector_update_scratch_regs(connector, ret); in amdgpu_connector_dvi_detect()
1107 pm_runtime_mark_last_busy(connector->dev->dev); in amdgpu_connector_dvi_detect()
1108 pm_runtime_put_autosuspend(connector->dev->dev); in amdgpu_connector_dvi_detect()
1116 amdgpu_connector_dvi_encoder(struct drm_connector *connector) in amdgpu_connector_dvi_encoder() argument
1118 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_dvi_encoder()
1122 drm_connector_for_each_possible_encoder(connector, encoder, i) { in amdgpu_connector_dvi_encoder()
1137 drm_connector_for_each_possible_encoder(connector, encoder, i) in amdgpu_connector_dvi_encoder()
1143 static void amdgpu_connector_dvi_force(struct drm_connector *connector) in amdgpu_connector_dvi_force() argument
1145 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_dvi_force()
1146 if (connector->force == DRM_FORCE_ON) in amdgpu_connector_dvi_force()
1148 if (connector->force == DRM_FORCE_ON_DIGITAL) in amdgpu_connector_dvi_force()
1152 static enum drm_mode_status amdgpu_connector_dvi_mode_valid(struct drm_connector *connector, in amdgpu_connector_dvi_mode_valid() argument
1155 struct drm_device *dev = connector->dev; in amdgpu_connector_dvi_mode_valid()
1157 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_dvi_mode_valid()
1166 } else if (drm_detect_hdmi_monitor(amdgpu_connector_edid(connector))) { in amdgpu_connector_dvi_mode_valid()
1200 static int amdgpu_connector_dp_get_modes(struct drm_connector *connector) in amdgpu_connector_dp_get_modes() argument
1202 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_dp_get_modes()
1204 struct drm_encoder *encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_connector_dp_get_modes()
1207 if ((connector->connector_type == DRM_MODE_CONNECTOR_eDP) || in amdgpu_connector_dp_get_modes()
1208 (connector->connector_type == DRM_MODE_CONNECTOR_LVDS)) { in amdgpu_connector_dp_get_modes()
1211 if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) { in amdgpu_connector_dp_get_modes()
1213 amdgpu_atombios_encoder_set_edp_panel_power(connector, in amdgpu_connector_dp_get_modes()
1215 amdgpu_connector_get_edid(connector); in amdgpu_connector_dp_get_modes()
1216 ret = amdgpu_connector_ddc_get_modes(connector); in amdgpu_connector_dp_get_modes()
1218 amdgpu_atombios_encoder_set_edp_panel_power(connector, in amdgpu_connector_dp_get_modes()
1222 if (amdgpu_connector_encoder_get_dp_bridge_encoder_id(connector) != in amdgpu_connector_dp_get_modes()
1227 amdgpu_connector_get_edid(connector); in amdgpu_connector_dp_get_modes()
1228 ret = amdgpu_connector_ddc_get_modes(connector); in amdgpu_connector_dp_get_modes()
1233 amdgpu_connector_fixup_lcd_native_mode(encoder, connector); in amdgpu_connector_dp_get_modes()
1235 amdgpu_connector_add_common_modes(encoder, connector); in amdgpu_connector_dp_get_modes()
1247 drm_mode_probed_add(connector, mode); in amdgpu_connector_dp_get_modes()
1249 connector->display_info.width_mm = mode->width_mm; in amdgpu_connector_dp_get_modes()
1250 connector->display_info.height_mm = mode->height_mm; in amdgpu_connector_dp_get_modes()
1252 amdgpu_connector_add_common_modes(encoder, connector); in amdgpu_connector_dp_get_modes()
1256 if (amdgpu_connector_encoder_get_dp_bridge_encoder_id(connector) != in amdgpu_connector_dp_get_modes()
1261 amdgpu_connector_get_edid(connector); in amdgpu_connector_dp_get_modes()
1262 ret = amdgpu_connector_ddc_get_modes(connector); in amdgpu_connector_dp_get_modes()
1264 amdgpu_get_native_mode(connector); in amdgpu_connector_dp_get_modes()
1270 u16 amdgpu_connector_encoder_get_dp_bridge_encoder_id(struct drm_connector *connector) in amdgpu_connector_encoder_get_dp_bridge_encoder_id() argument
1276 drm_connector_for_each_possible_encoder(connector, encoder, i) { in amdgpu_connector_encoder_get_dp_bridge_encoder_id()
1291 static bool amdgpu_connector_encoder_is_hbr2(struct drm_connector *connector) in amdgpu_connector_encoder_is_hbr2() argument
1298 drm_connector_for_each_possible_encoder(connector, encoder, i) { in amdgpu_connector_encoder_is_hbr2()
1307 bool amdgpu_connector_is_dp12_capable(struct drm_connector *connector) in amdgpu_connector_is_dp12_capable() argument
1309 struct drm_device *dev = connector->dev; in amdgpu_connector_is_dp12_capable()
1313 amdgpu_connector_encoder_is_hbr2(connector)) { in amdgpu_connector_is_dp12_capable()
1321 amdgpu_connector_dp_detect(struct drm_connector *connector, bool force) in amdgpu_connector_dp_detect() argument
1323 struct drm_device *dev = connector->dev; in amdgpu_connector_dp_detect()
1325 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_dp_detect()
1328 struct drm_encoder *encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_connector_dp_detect()
1332 r = pm_runtime_get_sync(connector->dev->dev); in amdgpu_connector_dp_detect()
1337 if (!force && amdgpu_connector_check_hpd_status_unchanged(connector)) { in amdgpu_connector_dp_detect()
1338 ret = connector->status; in amdgpu_connector_dp_detect()
1342 amdgpu_connector_free_edid(connector); in amdgpu_connector_dp_detect()
1344 if ((connector->connector_type == DRM_MODE_CONNECTOR_eDP) || in amdgpu_connector_dp_detect()
1345 (connector->connector_type == DRM_MODE_CONNECTOR_LVDS)) { in amdgpu_connector_dp_detect()
1357 amdgpu_atombios_encoder_set_edp_panel_power(connector, in amdgpu_connector_dp_detect()
1362 amdgpu_atombios_encoder_set_edp_panel_power(connector, in amdgpu_connector_dp_detect()
1364 } else if (amdgpu_connector_encoder_get_dp_bridge_encoder_id(connector) != in amdgpu_connector_dp_detect()
1380 ret = encoder_funcs->detect(encoder, connector); in amdgpu_connector_dp_detect()
1403 amdgpu_connector_update_scratch_regs(connector, ret); in amdgpu_connector_dp_detect()
1406 pm_runtime_mark_last_busy(connector->dev->dev); in amdgpu_connector_dp_detect()
1407 pm_runtime_put_autosuspend(connector->dev->dev); in amdgpu_connector_dp_detect()
1413 static enum drm_mode_status amdgpu_connector_dp_mode_valid(struct drm_connector *connector, in amdgpu_connector_dp_mode_valid() argument
1416 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_dp_mode_valid()
1421 if ((connector->connector_type == DRM_MODE_CONNECTOR_eDP) || in amdgpu_connector_dp_mode_valid()
1422 (connector->connector_type == DRM_MODE_CONNECTOR_LVDS)) { in amdgpu_connector_dp_mode_valid()
1423 struct drm_encoder *encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_connector_dp_mode_valid()
1450 return amdgpu_atombios_dp_mode_valid_helper(connector, mode); in amdgpu_connector_dp_mode_valid()
1452 if (drm_detect_hdmi_monitor(amdgpu_connector_edid(connector))) { in amdgpu_connector_dp_mode_valid()
1503 struct drm_connector *connector; in amdgpu_connector_add() local
1518 list_for_each_entry(connector, &dev->mode_config.connector_list, head) { in amdgpu_connector_add()
1519 amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_add()
1556 connector = &amdgpu_connector->base; in amdgpu_connector_add()
1595 connector->interlace_allowed = true; in amdgpu_connector_add()
1596 connector->doublescan_allowed = true; in amdgpu_connector_add()
1640 connector->interlace_allowed = true; in amdgpu_connector_add()
1642 connector->doublescan_allowed = true; in amdgpu_connector_add()
1644 connector->doublescan_allowed = false; in amdgpu_connector_add()
1664 connector->interlace_allowed = false; in amdgpu_connector_add()
1665 connector->doublescan_allowed = false; in amdgpu_connector_add()
1692 connector->interlace_allowed = true; in amdgpu_connector_add()
1693 connector->doublescan_allowed = true; in amdgpu_connector_add()
1717 connector->interlace_allowed = true; in amdgpu_connector_add()
1718 connector->doublescan_allowed = true; in amdgpu_connector_add()
1769 connector->interlace_allowed = true; in amdgpu_connector_add()
1771 connector->doublescan_allowed = true; in amdgpu_connector_add()
1773 connector->doublescan_allowed = false; in amdgpu_connector_add()
1817 connector->interlace_allowed = true; in amdgpu_connector_add()
1819 connector->doublescan_allowed = true; in amdgpu_connector_add()
1821 connector->doublescan_allowed = false; in amdgpu_connector_add()
1866 connector->interlace_allowed = true; in amdgpu_connector_add()
1868 connector->doublescan_allowed = false; in amdgpu_connector_add()
1893 connector->interlace_allowed = false; in amdgpu_connector_add()
1894 connector->doublescan_allowed = false; in amdgpu_connector_add()
1917 connector->interlace_allowed = false; in amdgpu_connector_add()
1918 connector->doublescan_allowed = false; in amdgpu_connector_add()
1925 connector->polled = DRM_CONNECTOR_POLL_CONNECT | in amdgpu_connector_add()
1929 connector->polled = DRM_CONNECTOR_POLL_HPD; in amdgpu_connector_add()
1931 connector->display_info.subpixel_order = subpixel_order; in amdgpu_connector_add()
1932 drm_connector_register(connector); in amdgpu_connector_add()
1940 drm_connector_cleanup(connector); in amdgpu_connector_add()
1941 kfree(connector); in amdgpu_connector_add()