Lines Matching full:connector
42 void amdgpu_connector_hotplug(struct drm_connector *connector) in amdgpu_connector_hotplug() argument
44 struct drm_device *dev = connector->dev; in amdgpu_connector_hotplug()
46 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_hotplug()
48 /* bail if the connector does not have hpd pin, e.g., in amdgpu_connector_hotplug()
56 /* if the connector is already off, don't turn it back on */ in amdgpu_connector_hotplug()
57 if (connector->dpms != DRM_MODE_DPMS_ON) in amdgpu_connector_hotplug()
61 if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) { in amdgpu_connector_hotplug()
81 /* Turn the connector off and back on immediately, which in amdgpu_connector_hotplug()
84 drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF); in amdgpu_connector_hotplug()
85 drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON); in amdgpu_connector_hotplug()
100 int amdgpu_connector_get_monitor_bpc(struct drm_connector *connector) in amdgpu_connector_get_monitor_bpc() argument
102 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_get_monitor_bpc()
107 switch (connector->connector_type) { in amdgpu_connector_get_monitor_bpc()
111 if (drm_detect_hdmi_monitor(amdgpu_connector_edid(connector))) { in amdgpu_connector_get_monitor_bpc()
112 if (connector->display_info.bpc) in amdgpu_connector_get_monitor_bpc()
113 bpc = connector->display_info.bpc; in amdgpu_connector_get_monitor_bpc()
119 if (drm_detect_hdmi_monitor(amdgpu_connector_edid(connector))) { in amdgpu_connector_get_monitor_bpc()
120 if (connector->display_info.bpc) in amdgpu_connector_get_monitor_bpc()
121 bpc = connector->display_info.bpc; in amdgpu_connector_get_monitor_bpc()
128 drm_detect_hdmi_monitor(amdgpu_connector_edid(connector))) { in amdgpu_connector_get_monitor_bpc()
129 if (connector->display_info.bpc) in amdgpu_connector_get_monitor_bpc()
130 bpc = connector->display_info.bpc; in amdgpu_connector_get_monitor_bpc()
135 if (connector->display_info.bpc) in amdgpu_connector_get_monitor_bpc()
136 bpc = connector->display_info.bpc; in amdgpu_connector_get_monitor_bpc()
139 connector->helper_private; in amdgpu_connector_get_monitor_bpc()
140 struct drm_encoder *encoder = connector_funcs->best_encoder(connector); in amdgpu_connector_get_monitor_bpc()
152 if (drm_detect_hdmi_monitor(amdgpu_connector_edid(connector))) { in amdgpu_connector_get_monitor_bpc()
161 connector->name, bpc); in amdgpu_connector_get_monitor_bpc()
166 if (connector->display_info.max_tmds_clock > 0) { in amdgpu_connector_get_monitor_bpc()
167 /* mode_clock is clock in kHz for mode to be modeset on this connector */ in amdgpu_connector_get_monitor_bpc()
171 max_tmds_clock = connector->display_info.max_tmds_clock; in amdgpu_connector_get_monitor_bpc()
174 connector->name, mode_clock, max_tmds_clock); in amdgpu_connector_get_monitor_bpc()
178 if ((connector->display_info.edid_hdmi_dc_modes & DRM_EDID_HDMI_DC_30) && in amdgpu_connector_get_monitor_bpc()
185 connector->name, bpc); in amdgpu_connector_get_monitor_bpc()
191 connector->name, bpc); in amdgpu_connector_get_monitor_bpc()
196 connector->name); in amdgpu_connector_get_monitor_bpc()
203 connector->name); in amdgpu_connector_get_monitor_bpc()
208 connector->name, connector->display_info.bpc, bpc); in amdgpu_connector_get_monitor_bpc()
214 amdgpu_connector_update_scratch_regs(struct drm_connector *connector, in amdgpu_connector_update_scratch_regs() argument
219 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) { 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
240 drm_connector_for_each_possible_encoder(connector, encoder) { in amdgpu_connector_find_encoder()
248 struct edid *amdgpu_connector_edid(struct drm_connector *connector) in amdgpu_connector_edid() argument
250 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_edid()
251 struct drm_property_blob *edid_blob = connector->edid_blob_ptr; in amdgpu_connector_edid()
280 static void amdgpu_connector_get_edid(struct drm_connector *connector) in amdgpu_connector_get_edid() argument
282 struct drm_device *dev = connector->dev; in amdgpu_connector_get_edid()
284 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_get_edid()
293 if ((amdgpu_connector_encoder_get_dp_bridge_encoder_id(connector) != in amdgpu_connector_get_edid()
296 amdgpu_connector->edid = drm_get_edid(connector, in amdgpu_connector_get_edid()
298 } else if ((connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) || in amdgpu_connector_get_edid()
299 (connector->connector_type == DRM_MODE_CONNECTOR_eDP)) { in amdgpu_connector_get_edid()
305 amdgpu_connector->edid = drm_get_edid(connector, in amdgpu_connector_get_edid()
308 amdgpu_connector->edid = drm_get_edid(connector, in amdgpu_connector_get_edid()
311 amdgpu_connector->edid = drm_get_edid(connector, in amdgpu_connector_get_edid()
317 if (((connector->connector_type == DRM_MODE_CONNECTOR_LVDS) || in amdgpu_connector_get_edid()
318 (connector->connector_type == DRM_MODE_CONNECTOR_eDP))) in amdgpu_connector_get_edid()
323 static void amdgpu_connector_free_edid(struct drm_connector *connector) in amdgpu_connector_free_edid() argument
325 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_free_edid()
331 static int amdgpu_connector_ddc_get_modes(struct drm_connector *connector) in amdgpu_connector_ddc_get_modes() argument
333 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_ddc_get_modes()
337 drm_connector_update_edid_property(connector, amdgpu_connector->edid); in amdgpu_connector_ddc_get_modes()
338 ret = drm_add_edid_modes(connector, amdgpu_connector->edid); in amdgpu_connector_ddc_get_modes()
341 drm_connector_update_edid_property(connector, NULL); in amdgpu_connector_ddc_get_modes()
346 amdgpu_connector_best_single_encoder(struct drm_connector *connector) in amdgpu_connector_best_single_encoder() argument
351 drm_connector_for_each_possible_encoder(connector, encoder) in amdgpu_connector_best_single_encoder()
357 static void amdgpu_get_native_mode(struct drm_connector *connector) in amdgpu_get_native_mode() argument
359 struct drm_encoder *encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_get_native_mode()
367 if (!list_empty(&connector->probed_modes)) { in amdgpu_get_native_mode()
369 list_first_entry(&connector->probed_modes, in amdgpu_get_native_mode()
411 struct drm_connector *connector) in amdgpu_connector_add_common_modes() argument
458 drm_mode_probed_add(connector, mode); in amdgpu_connector_add_common_modes()
462 static int amdgpu_connector_set_property(struct drm_connector *connector, in amdgpu_connector_set_property() argument
466 struct drm_device *dev = connector->dev; in amdgpu_connector_set_property()
475 /* need to find digital encoder on connector */ in amdgpu_connector_set_property()
476 encoder = amdgpu_connector_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in amdgpu_connector_set_property()
494 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_set_property()
495 /* need to find digital encoder on connector */ in amdgpu_connector_set_property()
496 encoder = amdgpu_connector_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in amdgpu_connector_set_property()
509 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_set_property()
510 /* need to find digital encoder on connector */ in amdgpu_connector_set_property()
511 encoder = amdgpu_connector_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in amdgpu_connector_set_property()
524 /* need to find digital encoder on connector */ in amdgpu_connector_set_property()
525 encoder = amdgpu_connector_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in amdgpu_connector_set_property()
538 /* need to find digital encoder on connector */ in amdgpu_connector_set_property()
539 encoder = amdgpu_connector_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in amdgpu_connector_set_property()
552 /* need to find digital encoder on connector */ in amdgpu_connector_set_property()
553 encoder = amdgpu_connector_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in amdgpu_connector_set_property()
567 to_amdgpu_connector(connector); in amdgpu_connector_set_property()
578 if (connector->encoder) { in amdgpu_connector_set_property()
579 amdgpu_encoder = to_amdgpu_encoder(connector->encoder); in amdgpu_connector_set_property()
581 const struct drm_connector_helper_funcs *connector_funcs = connector->helper_private; in amdgpu_connector_set_property()
582 amdgpu_encoder = to_amdgpu_encoder(connector_funcs->best_encoder(connector)); in amdgpu_connector_set_property()
609 struct drm_connector *connector) in amdgpu_connector_fixup_lcd_native_mode() argument
616 list_for_each_entry_safe(mode, t, &connector->probed_modes, head) { in amdgpu_connector_fixup_lcd_native_mode()
626 list_for_each_entry_safe(mode, t, &connector->probed_modes, head) { in amdgpu_connector_fixup_lcd_native_mode()
643 static int amdgpu_connector_lvds_get_modes(struct drm_connector *connector) in amdgpu_connector_lvds_get_modes() argument
649 amdgpu_connector_get_edid(connector); in amdgpu_connector_lvds_get_modes()
650 ret = amdgpu_connector_ddc_get_modes(connector); in amdgpu_connector_lvds_get_modes()
652 encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_connector_lvds_get_modes()
654 amdgpu_connector_fixup_lcd_native_mode(encoder, connector); in amdgpu_connector_lvds_get_modes()
656 amdgpu_connector_add_common_modes(encoder, connector); in amdgpu_connector_lvds_get_modes()
661 encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_connector_lvds_get_modes()
669 drm_mode_probed_add(connector, mode); in amdgpu_connector_lvds_get_modes()
671 connector->display_info.width_mm = mode->width_mm; in amdgpu_connector_lvds_get_modes()
672 connector->display_info.height_mm = mode->height_mm; in amdgpu_connector_lvds_get_modes()
674 amdgpu_connector_add_common_modes(encoder, connector); in amdgpu_connector_lvds_get_modes()
680 static enum drm_mode_status amdgpu_connector_lvds_mode_valid(struct drm_connector *connector, in amdgpu_connector_lvds_mode_valid() argument
683 struct drm_encoder *encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_connector_lvds_mode_valid()
711 amdgpu_connector_lvds_detect(struct drm_connector *connector, bool force) in amdgpu_connector_lvds_detect() argument
713 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_lvds_detect()
714 struct drm_encoder *encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_connector_lvds_detect()
719 r = pm_runtime_get_sync(connector->dev->dev); in amdgpu_connector_lvds_detect()
721 pm_runtime_put_autosuspend(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()
861 pm_runtime_put_autosuspend(connector->dev->dev); in amdgpu_connector_vga_detect()
866 encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_connector_vga_detect()
874 amdgpu_connector_free_edid(connector); in amdgpu_connector_vga_detect()
875 amdgpu_connector_get_edid(connector); in amdgpu_connector_vga_detect()
879 connector->name); in amdgpu_connector_vga_detect()
889 amdgpu_connector_free_edid(connector); in amdgpu_connector_vga_detect()
903 ret = connector->status; in amdgpu_connector_vga_detect()
909 ret = encoder_funcs->detect(encoder, connector); in amdgpu_connector_vga_detect()
915 amdgpu_connector_update_scratch_regs(connector, ret); in amdgpu_connector_vga_detect()
919 pm_runtime_mark_last_busy(connector->dev->dev); in amdgpu_connector_vga_detect()
920 pm_runtime_put_autosuspend(connector->dev->dev); in amdgpu_connector_vga_detect()
942 amdgpu_connector_check_hpd_status_unchanged(struct drm_connector *connector) in amdgpu_connector_check_hpd_status_unchanged() argument
944 struct drm_device *dev = connector->dev; in amdgpu_connector_check_hpd_status_unchanged()
946 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_check_hpd_status_unchanged()
954 if (connector->status == status) in amdgpu_connector_check_hpd_status_unchanged()
966 * we need to find the DAC encoder object for this connector.
970 * if its shared we have to set the other connector to disconnected.
973 amdgpu_connector_dvi_detect(struct drm_connector *connector, bool force) in amdgpu_connector_dvi_detect() argument
975 struct drm_device *dev = connector->dev; in amdgpu_connector_dvi_detect()
977 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_dvi_detect()
984 r = pm_runtime_get_sync(connector->dev->dev); in amdgpu_connector_dvi_detect()
986 pm_runtime_put_autosuspend(connector->dev->dev); in amdgpu_connector_dvi_detect()
991 if (!force && amdgpu_connector_check_hpd_status_unchanged(connector)) { in amdgpu_connector_dvi_detect()
992 ret = connector->status; in amdgpu_connector_dvi_detect()
1000 amdgpu_connector_free_edid(connector); in amdgpu_connector_dvi_detect()
1001 amdgpu_connector_get_edid(connector); in amdgpu_connector_dvi_detect()
1005 connector->name); in amdgpu_connector_dvi_detect()
1016 amdgpu_connector_free_edid(connector); in amdgpu_connector_dvi_detect()
1035 if (connector == list_connector) in amdgpu_connector_dvi_detect()
1045 amdgpu_connector_free_edid(connector); in amdgpu_connector_dvi_detect()
1060 if ((connector->connector_type == DRM_MODE_CONNECTOR_DVID) || in amdgpu_connector_dvi_detect()
1061 (connector->connector_type == DRM_MODE_CONNECTOR_HDMIA)) in amdgpu_connector_dvi_detect()
1070 ret = connector->status; in amdgpu_connector_dvi_detect()
1078 drm_connector_for_each_possible_encoder(connector, encoder) { in amdgpu_connector_dvi_detect()
1088 ret = encoder_funcs->detect(encoder, connector); in amdgpu_connector_dvi_detect()
1099 lret = encoder_funcs->detect(encoder, connector); in amdgpu_connector_dvi_detect()
1111 amdgpu_connector_update_scratch_regs(connector, ret); in amdgpu_connector_dvi_detect()
1115 pm_runtime_mark_last_busy(connector->dev->dev); in amdgpu_connector_dvi_detect()
1116 pm_runtime_put_autosuspend(connector->dev->dev); in amdgpu_connector_dvi_detect()
1124 amdgpu_connector_dvi_encoder(struct drm_connector *connector) in amdgpu_connector_dvi_encoder() argument
1126 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_dvi_encoder()
1129 drm_connector_for_each_possible_encoder(connector, encoder) { in amdgpu_connector_dvi_encoder()
1144 drm_connector_for_each_possible_encoder(connector, encoder) in amdgpu_connector_dvi_encoder()
1150 static void amdgpu_connector_dvi_force(struct drm_connector *connector) in amdgpu_connector_dvi_force() argument
1152 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_dvi_force()
1153 if (connector->force == DRM_FORCE_ON) in amdgpu_connector_dvi_force()
1155 if (connector->force == DRM_FORCE_ON_DIGITAL) in amdgpu_connector_dvi_force()
1159 static enum drm_mode_status amdgpu_connector_dvi_mode_valid(struct drm_connector *connector, in amdgpu_connector_dvi_mode_valid() argument
1162 struct drm_device *dev = connector->dev; in amdgpu_connector_dvi_mode_valid()
1164 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_dvi_mode_valid()
1173 } else if (drm_detect_hdmi_monitor(amdgpu_connector_edid(connector))) { in amdgpu_connector_dvi_mode_valid()
1207 static int amdgpu_connector_dp_get_modes(struct drm_connector *connector) in amdgpu_connector_dp_get_modes() argument
1209 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_dp_get_modes()
1211 struct drm_encoder *encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_connector_dp_get_modes()
1214 if ((connector->connector_type == DRM_MODE_CONNECTOR_eDP) || in amdgpu_connector_dp_get_modes()
1215 (connector->connector_type == DRM_MODE_CONNECTOR_LVDS)) { in amdgpu_connector_dp_get_modes()
1218 if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) { in amdgpu_connector_dp_get_modes()
1220 amdgpu_atombios_encoder_set_edp_panel_power(connector, in amdgpu_connector_dp_get_modes()
1222 amdgpu_connector_get_edid(connector); in amdgpu_connector_dp_get_modes()
1223 ret = amdgpu_connector_ddc_get_modes(connector); in amdgpu_connector_dp_get_modes()
1225 amdgpu_atombios_encoder_set_edp_panel_power(connector, in amdgpu_connector_dp_get_modes()
1229 if (amdgpu_connector_encoder_get_dp_bridge_encoder_id(connector) != in amdgpu_connector_dp_get_modes()
1234 amdgpu_connector_get_edid(connector); in amdgpu_connector_dp_get_modes()
1235 ret = amdgpu_connector_ddc_get_modes(connector); in amdgpu_connector_dp_get_modes()
1240 amdgpu_connector_fixup_lcd_native_mode(encoder, connector); in amdgpu_connector_dp_get_modes()
1242 amdgpu_connector_add_common_modes(encoder, connector); in amdgpu_connector_dp_get_modes()
1254 drm_mode_probed_add(connector, mode); in amdgpu_connector_dp_get_modes()
1256 connector->display_info.width_mm = mode->width_mm; in amdgpu_connector_dp_get_modes()
1257 connector->display_info.height_mm = mode->height_mm; in amdgpu_connector_dp_get_modes()
1259 amdgpu_connector_add_common_modes(encoder, connector); in amdgpu_connector_dp_get_modes()
1263 if (amdgpu_connector_encoder_get_dp_bridge_encoder_id(connector) != in amdgpu_connector_dp_get_modes()
1268 amdgpu_connector_get_edid(connector); in amdgpu_connector_dp_get_modes()
1269 ret = amdgpu_connector_ddc_get_modes(connector); in amdgpu_connector_dp_get_modes()
1271 amdgpu_get_native_mode(connector); in amdgpu_connector_dp_get_modes()
1277 u16 amdgpu_connector_encoder_get_dp_bridge_encoder_id(struct drm_connector *connector) in amdgpu_connector_encoder_get_dp_bridge_encoder_id() argument
1282 drm_connector_for_each_possible_encoder(connector, encoder) { in amdgpu_connector_encoder_get_dp_bridge_encoder_id()
1297 static bool amdgpu_connector_encoder_is_hbr2(struct drm_connector *connector) in amdgpu_connector_encoder_is_hbr2() argument
1303 drm_connector_for_each_possible_encoder(connector, encoder) { in amdgpu_connector_encoder_is_hbr2()
1312 bool amdgpu_connector_is_dp12_capable(struct drm_connector *connector) in amdgpu_connector_is_dp12_capable() argument
1314 struct drm_device *dev = connector->dev; in amdgpu_connector_is_dp12_capable()
1318 amdgpu_connector_encoder_is_hbr2(connector)) { in amdgpu_connector_is_dp12_capable()
1326 amdgpu_connector_dp_detect(struct drm_connector *connector, bool force) in amdgpu_connector_dp_detect() argument
1328 struct drm_device *dev = connector->dev; in amdgpu_connector_dp_detect()
1330 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_dp_detect()
1333 struct drm_encoder *encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_connector_dp_detect()
1337 r = pm_runtime_get_sync(connector->dev->dev); in amdgpu_connector_dp_detect()
1339 pm_runtime_put_autosuspend(connector->dev->dev); in amdgpu_connector_dp_detect()
1344 if (!force && amdgpu_connector_check_hpd_status_unchanged(connector)) { in amdgpu_connector_dp_detect()
1345 ret = connector->status; in amdgpu_connector_dp_detect()
1349 amdgpu_connector_free_edid(connector); in amdgpu_connector_dp_detect()
1351 if ((connector->connector_type == DRM_MODE_CONNECTOR_eDP) || in amdgpu_connector_dp_detect()
1352 (connector->connector_type == DRM_MODE_CONNECTOR_LVDS)) { in amdgpu_connector_dp_detect()
1364 amdgpu_atombios_encoder_set_edp_panel_power(connector, in amdgpu_connector_dp_detect()
1369 amdgpu_atombios_encoder_set_edp_panel_power(connector, in amdgpu_connector_dp_detect()
1371 } else if (amdgpu_connector_encoder_get_dp_bridge_encoder_id(connector) != in amdgpu_connector_dp_detect()
1387 ret = encoder_funcs->detect(encoder, connector); in amdgpu_connector_dp_detect()
1410 amdgpu_connector_update_scratch_regs(connector, ret); in amdgpu_connector_dp_detect()
1413 pm_runtime_mark_last_busy(connector->dev->dev); in amdgpu_connector_dp_detect()
1414 pm_runtime_put_autosuspend(connector->dev->dev); in amdgpu_connector_dp_detect()
1424 static enum drm_mode_status amdgpu_connector_dp_mode_valid(struct drm_connector *connector, in amdgpu_connector_dp_mode_valid() argument
1427 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_dp_mode_valid()
1432 if ((connector->connector_type == DRM_MODE_CONNECTOR_eDP) || in amdgpu_connector_dp_mode_valid()
1433 (connector->connector_type == DRM_MODE_CONNECTOR_LVDS)) { in amdgpu_connector_dp_mode_valid()
1434 struct drm_encoder *encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_connector_dp_mode_valid()
1461 return amdgpu_atombios_dp_mode_valid_helper(connector, mode); in amdgpu_connector_dp_mode_valid()
1463 if (drm_detect_hdmi_monitor(amdgpu_connector_edid(connector))) { in amdgpu_connector_dp_mode_valid()
1478 amdgpu_connector_late_register(struct drm_connector *connector) in amdgpu_connector_late_register() argument
1480 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_late_register()
1530 struct drm_connector *connector; in amdgpu_connector_add() local
1547 drm_for_each_connector_iter(connector, &iter) { in amdgpu_connector_add()
1548 amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_add()
1587 connector = &amdgpu_connector->base; in amdgpu_connector_add()
1626 connector->interlace_allowed = true; in amdgpu_connector_add()
1627 connector->doublescan_allowed = true; in amdgpu_connector_add()
1671 connector->interlace_allowed = true; in amdgpu_connector_add()
1673 connector->doublescan_allowed = true; in amdgpu_connector_add()
1675 connector->doublescan_allowed = false; in amdgpu_connector_add()
1695 connector->interlace_allowed = false; in amdgpu_connector_add()
1696 connector->doublescan_allowed = false; in amdgpu_connector_add()
1723 connector->interlace_allowed = true; in amdgpu_connector_add()
1724 connector->doublescan_allowed = true; in amdgpu_connector_add()
1748 connector->interlace_allowed = true; in amdgpu_connector_add()
1749 connector->doublescan_allowed = true; in amdgpu_connector_add()
1800 connector->interlace_allowed = true; in amdgpu_connector_add()
1802 connector->doublescan_allowed = true; in amdgpu_connector_add()
1804 connector->doublescan_allowed = false; in amdgpu_connector_add()
1848 connector->interlace_allowed = true; in amdgpu_connector_add()
1850 connector->doublescan_allowed = true; in amdgpu_connector_add()
1852 connector->doublescan_allowed = false; in amdgpu_connector_add()
1897 connector->interlace_allowed = true; in amdgpu_connector_add()
1899 connector->doublescan_allowed = false; in amdgpu_connector_add()
1924 connector->interlace_allowed = false; in amdgpu_connector_add()
1925 connector->doublescan_allowed = false; in amdgpu_connector_add()
1948 connector->interlace_allowed = false; in amdgpu_connector_add()
1949 connector->doublescan_allowed = false; in amdgpu_connector_add()
1956 connector->polled = DRM_CONNECTOR_POLL_CONNECT | in amdgpu_connector_add()
1960 connector->polled = DRM_CONNECTOR_POLL_HPD; in amdgpu_connector_add()
1962 connector->display_info.subpixel_order = subpixel_order; in amdgpu_connector_add()
1975 drm_connector_cleanup(connector); in amdgpu_connector_add()
1976 kfree(connector); in amdgpu_connector_add()