Lines Matching refs:connector
40 void amdgpu_connector_hotplug(struct drm_connector *connector) in amdgpu_connector_hotplug() argument
42 struct drm_device *dev = connector->dev; in amdgpu_connector_hotplug()
44 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_hotplug()
55 if (connector->dpms != DRM_MODE_DPMS_ON) in amdgpu_connector_hotplug()
59 if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) { in amdgpu_connector_hotplug()
73 int saved_dpms = connector->dpms; in amdgpu_connector_hotplug()
76 drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF); in amdgpu_connector_hotplug()
87 connector->dpms = DRM_MODE_DPMS_OFF; in amdgpu_connector_hotplug()
88 drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON); in amdgpu_connector_hotplug()
90 connector->dpms = saved_dpms; in amdgpu_connector_hotplug()
105 int amdgpu_connector_get_monitor_bpc(struct drm_connector *connector) in amdgpu_connector_get_monitor_bpc() argument
107 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_get_monitor_bpc()
112 switch (connector->connector_type) { in amdgpu_connector_get_monitor_bpc()
116 if (drm_detect_hdmi_monitor(amdgpu_connector_edid(connector))) { in amdgpu_connector_get_monitor_bpc()
117 if (connector->display_info.bpc) in amdgpu_connector_get_monitor_bpc()
118 bpc = connector->display_info.bpc; in amdgpu_connector_get_monitor_bpc()
124 if (drm_detect_hdmi_monitor(amdgpu_connector_edid(connector))) { in amdgpu_connector_get_monitor_bpc()
125 if (connector->display_info.bpc) in amdgpu_connector_get_monitor_bpc()
126 bpc = connector->display_info.bpc; in amdgpu_connector_get_monitor_bpc()
133 drm_detect_hdmi_monitor(amdgpu_connector_edid(connector))) { 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()
140 if (connector->display_info.bpc) in amdgpu_connector_get_monitor_bpc()
141 bpc = connector->display_info.bpc; in amdgpu_connector_get_monitor_bpc()
144 connector->helper_private; in amdgpu_connector_get_monitor_bpc()
145 struct drm_encoder *encoder = connector_funcs->best_encoder(connector); in amdgpu_connector_get_monitor_bpc()
157 if (drm_detect_hdmi_monitor(amdgpu_connector_edid(connector))) { in amdgpu_connector_get_monitor_bpc()
166 connector->name, bpc); in amdgpu_connector_get_monitor_bpc()
171 if (connector->max_tmds_clock > 0) { in amdgpu_connector_get_monitor_bpc()
176 max_tmds_clock = connector->max_tmds_clock * 1000; in amdgpu_connector_get_monitor_bpc()
179 connector->name, mode_clock, max_tmds_clock); in amdgpu_connector_get_monitor_bpc()
183 if ((connector->display_info.edid_hdmi_dc_modes & DRM_EDID_HDMI_DC_30) && in amdgpu_connector_get_monitor_bpc()
190 connector->name, bpc); in amdgpu_connector_get_monitor_bpc()
196 connector->name, bpc); in amdgpu_connector_get_monitor_bpc()
201 connector->name); in amdgpu_connector_get_monitor_bpc()
208 connector->name); in amdgpu_connector_get_monitor_bpc()
213 connector->name, connector->display_info.bpc, bpc); in amdgpu_connector_get_monitor_bpc()
219 amdgpu_connector_update_scratch_regs(struct drm_connector *connector, in amdgpu_connector_update_scratch_regs() argument
224 const struct drm_connector_helper_funcs *connector_funcs = connector->helper_private; in amdgpu_connector_update_scratch_regs()
228 best_encoder = connector_funcs->best_encoder(connector); in amdgpu_connector_update_scratch_regs()
231 if (connector->encoder_ids[i] == 0) in amdgpu_connector_update_scratch_regs()
234 encoder = drm_encoder_find(connector->dev, in amdgpu_connector_update_scratch_regs()
235 connector->encoder_ids[i]); in amdgpu_connector_update_scratch_regs()
244 amdgpu_atombios_encoder_set_bios_scratch_regs(connector, encoder, connected); in amdgpu_connector_update_scratch_regs()
250 amdgpu_connector_find_encoder(struct drm_connector *connector, in amdgpu_connector_find_encoder() argument
257 if (connector->encoder_ids[i] == 0) in amdgpu_connector_find_encoder()
259 encoder = drm_encoder_find(connector->dev, in amdgpu_connector_find_encoder()
260 connector->encoder_ids[i]); in amdgpu_connector_find_encoder()
270 struct edid *amdgpu_connector_edid(struct drm_connector *connector) in amdgpu_connector_edid() argument
272 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_edid()
273 struct drm_property_blob *edid_blob = connector->edid_blob_ptr; in amdgpu_connector_edid()
302 static void amdgpu_connector_get_edid(struct drm_connector *connector) in amdgpu_connector_get_edid() argument
304 struct drm_device *dev = connector->dev; in amdgpu_connector_get_edid()
306 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_get_edid()
315 if ((amdgpu_connector_encoder_get_dp_bridge_encoder_id(connector) != in amdgpu_connector_get_edid()
318 amdgpu_connector->edid = drm_get_edid(connector, in amdgpu_connector_get_edid()
320 } else if ((connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) || in amdgpu_connector_get_edid()
321 (connector->connector_type == DRM_MODE_CONNECTOR_eDP)) { in amdgpu_connector_get_edid()
327 amdgpu_connector->edid = drm_get_edid(connector, in amdgpu_connector_get_edid()
330 amdgpu_connector->edid = drm_get_edid(connector, in amdgpu_connector_get_edid()
333 amdgpu_connector->edid = drm_get_edid(connector, in amdgpu_connector_get_edid()
339 if (((connector->connector_type == DRM_MODE_CONNECTOR_LVDS) || in amdgpu_connector_get_edid()
340 (connector->connector_type == DRM_MODE_CONNECTOR_eDP))) in amdgpu_connector_get_edid()
345 static void amdgpu_connector_free_edid(struct drm_connector *connector) in amdgpu_connector_free_edid() argument
347 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_free_edid()
355 static int amdgpu_connector_ddc_get_modes(struct drm_connector *connector) in amdgpu_connector_ddc_get_modes() argument
357 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_ddc_get_modes()
361 drm_mode_connector_update_edid_property(connector, amdgpu_connector->edid); in amdgpu_connector_ddc_get_modes()
362 ret = drm_add_edid_modes(connector, amdgpu_connector->edid); in amdgpu_connector_ddc_get_modes()
363 drm_edid_to_eld(connector, amdgpu_connector->edid); in amdgpu_connector_ddc_get_modes()
366 drm_mode_connector_update_edid_property(connector, NULL); in amdgpu_connector_ddc_get_modes()
371 amdgpu_connector_best_single_encoder(struct drm_connector *connector) in amdgpu_connector_best_single_encoder() argument
373 int enc_id = connector->encoder_ids[0]; in amdgpu_connector_best_single_encoder()
377 return drm_encoder_find(connector->dev, enc_id); in amdgpu_connector_best_single_encoder()
381 static void amdgpu_get_native_mode(struct drm_connector *connector) in amdgpu_get_native_mode() argument
383 struct drm_encoder *encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_get_native_mode()
391 if (!list_empty(&connector->probed_modes)) { in amdgpu_get_native_mode()
393 list_first_entry(&connector->probed_modes, in amdgpu_get_native_mode()
435 struct drm_connector *connector) in amdgpu_connector_add_common_modes() argument
482 drm_mode_probed_add(connector, mode); in amdgpu_connector_add_common_modes()
486 static int amdgpu_connector_set_property(struct drm_connector *connector, in amdgpu_connector_set_property() argument
490 struct drm_device *dev = connector->dev; in amdgpu_connector_set_property()
500 encoder = amdgpu_connector_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in amdgpu_connector_set_property()
518 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_set_property()
520 encoder = amdgpu_connector_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in amdgpu_connector_set_property()
533 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_set_property()
535 encoder = amdgpu_connector_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in amdgpu_connector_set_property()
549 encoder = amdgpu_connector_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in amdgpu_connector_set_property()
563 encoder = amdgpu_connector_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in amdgpu_connector_set_property()
577 encoder = amdgpu_connector_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in amdgpu_connector_set_property()
591 to_amdgpu_connector(connector); in amdgpu_connector_set_property()
602 if (connector->encoder) { in amdgpu_connector_set_property()
603 amdgpu_encoder = to_amdgpu_encoder(connector->encoder); in amdgpu_connector_set_property()
605 const struct drm_connector_helper_funcs *connector_funcs = connector->helper_private; in amdgpu_connector_set_property()
606 amdgpu_encoder = to_amdgpu_encoder(connector_funcs->best_encoder(connector)); in amdgpu_connector_set_property()
633 struct drm_connector *connector) in amdgpu_connector_fixup_lcd_native_mode() argument
640 list_for_each_entry_safe(mode, t, &connector->probed_modes, head) { in amdgpu_connector_fixup_lcd_native_mode()
650 list_for_each_entry_safe(mode, t, &connector->probed_modes, head) { in amdgpu_connector_fixup_lcd_native_mode()
667 static int amdgpu_connector_lvds_get_modes(struct drm_connector *connector) in amdgpu_connector_lvds_get_modes() argument
673 amdgpu_connector_get_edid(connector); in amdgpu_connector_lvds_get_modes()
674 ret = amdgpu_connector_ddc_get_modes(connector); in amdgpu_connector_lvds_get_modes()
676 encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_connector_lvds_get_modes()
678 amdgpu_connector_fixup_lcd_native_mode(encoder, connector); in amdgpu_connector_lvds_get_modes()
680 amdgpu_connector_add_common_modes(encoder, connector); in amdgpu_connector_lvds_get_modes()
685 encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_connector_lvds_get_modes()
693 drm_mode_probed_add(connector, mode); in amdgpu_connector_lvds_get_modes()
695 connector->display_info.width_mm = mode->width_mm; in amdgpu_connector_lvds_get_modes()
696 connector->display_info.height_mm = mode->height_mm; in amdgpu_connector_lvds_get_modes()
698 amdgpu_connector_add_common_modes(encoder, connector); in amdgpu_connector_lvds_get_modes()
704 static int amdgpu_connector_lvds_mode_valid(struct drm_connector *connector, in amdgpu_connector_lvds_mode_valid() argument
707 struct drm_encoder *encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_connector_lvds_mode_valid()
735 amdgpu_connector_lvds_detect(struct drm_connector *connector, bool force) in amdgpu_connector_lvds_detect() argument
737 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_lvds_detect()
738 struct drm_encoder *encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_connector_lvds_detect()
742 r = pm_runtime_get_sync(connector->dev->dev); in amdgpu_connector_lvds_detect()
757 amdgpu_connector_get_edid(connector); in amdgpu_connector_lvds_detect()
762 amdgpu_connector_update_scratch_regs(connector, ret); in amdgpu_connector_lvds_detect()
763 pm_runtime_mark_last_busy(connector->dev->dev); in amdgpu_connector_lvds_detect()
764 pm_runtime_put_autosuspend(connector->dev->dev); in amdgpu_connector_lvds_detect()
768 static void amdgpu_connector_destroy(struct drm_connector *connector) in amdgpu_connector_destroy() argument
770 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_destroy()
774 amdgpu_connector_free_edid(connector); in amdgpu_connector_destroy()
776 drm_connector_unregister(connector); in amdgpu_connector_destroy()
777 drm_connector_cleanup(connector); in amdgpu_connector_destroy()
778 kfree(connector); in amdgpu_connector_destroy()
781 static int amdgpu_connector_set_lcd_property(struct drm_connector *connector, in amdgpu_connector_set_lcd_property() argument
785 struct drm_device *dev = connector->dev; in amdgpu_connector_set_lcd_property()
793 if (connector->encoder) in amdgpu_connector_set_lcd_property()
794 amdgpu_encoder = to_amdgpu_encoder(connector->encoder); in amdgpu_connector_set_lcd_property()
796 const struct drm_connector_helper_funcs *connector_funcs = connector->helper_private; in amdgpu_connector_set_lcd_property()
797 amdgpu_encoder = to_amdgpu_encoder(connector_funcs->best_encoder(connector)); in amdgpu_connector_set_lcd_property()
831 static int amdgpu_connector_vga_get_modes(struct drm_connector *connector) in amdgpu_connector_vga_get_modes() argument
835 amdgpu_connector_get_edid(connector); in amdgpu_connector_vga_get_modes()
836 ret = amdgpu_connector_ddc_get_modes(connector); in amdgpu_connector_vga_get_modes()
841 static int amdgpu_connector_vga_mode_valid(struct drm_connector *connector, in amdgpu_connector_vga_mode_valid() argument
844 struct drm_device *dev = connector->dev; in amdgpu_connector_vga_mode_valid()
856 amdgpu_connector_vga_detect(struct drm_connector *connector, bool force) in amdgpu_connector_vga_detect() argument
858 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_vga_detect()
865 r = pm_runtime_get_sync(connector->dev->dev); in amdgpu_connector_vga_detect()
869 encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_connector_vga_detect()
877 amdgpu_connector_free_edid(connector); in amdgpu_connector_vga_detect()
878 amdgpu_connector_get_edid(connector); in amdgpu_connector_vga_detect()
882 connector->name); in amdgpu_connector_vga_detect()
892 amdgpu_connector_free_edid(connector); in amdgpu_connector_vga_detect()
906 ret = connector->status; in amdgpu_connector_vga_detect()
912 ret = encoder_funcs->detect(encoder, connector); in amdgpu_connector_vga_detect()
918 amdgpu_connector_update_scratch_regs(connector, ret); in amdgpu_connector_vga_detect()
921 pm_runtime_mark_last_busy(connector->dev->dev); in amdgpu_connector_vga_detect()
922 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()
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()
988 if (!force && amdgpu_connector_check_hpd_status_unchanged(connector)) { in amdgpu_connector_dvi_detect()
989 ret = connector->status; in amdgpu_connector_dvi_detect()
997 amdgpu_connector_free_edid(connector); in amdgpu_connector_dvi_detect()
998 amdgpu_connector_get_edid(connector); in amdgpu_connector_dvi_detect()
1002 connector->name); in amdgpu_connector_dvi_detect()
1013 amdgpu_connector_free_edid(connector); in amdgpu_connector_dvi_detect()
1028 if (connector == list_connector) in amdgpu_connector_dvi_detect()
1038 amdgpu_connector_free_edid(connector); in amdgpu_connector_dvi_detect()
1052 if ((connector->connector_type == DRM_MODE_CONNECTOR_DVID) || in amdgpu_connector_dvi_detect()
1053 (connector->connector_type == DRM_MODE_CONNECTOR_HDMIA)) in amdgpu_connector_dvi_detect()
1062 ret = connector->status; in amdgpu_connector_dvi_detect()
1069 if (connector->encoder_ids[i] == 0) in amdgpu_connector_dvi_detect()
1072 encoder = drm_encoder_find(connector->dev, connector->encoder_ids[i]); in amdgpu_connector_dvi_detect()
1085 ret = encoder_funcs->detect(encoder, connector); in amdgpu_connector_dvi_detect()
1096 lret = encoder_funcs->detect(encoder, connector); in amdgpu_connector_dvi_detect()
1108 amdgpu_connector_update_scratch_regs(connector, ret); in amdgpu_connector_dvi_detect()
1111 pm_runtime_mark_last_busy(connector->dev->dev); in amdgpu_connector_dvi_detect()
1112 pm_runtime_put_autosuspend(connector->dev->dev); in amdgpu_connector_dvi_detect()
1119 amdgpu_connector_dvi_encoder(struct drm_connector *connector) in amdgpu_connector_dvi_encoder() argument
1121 int enc_id = connector->encoder_ids[0]; in amdgpu_connector_dvi_encoder()
1122 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_dvi_encoder()
1126 if (connector->encoder_ids[i] == 0) in amdgpu_connector_dvi_encoder()
1129 encoder = drm_encoder_find(connector->dev, connector->encoder_ids[i]); in amdgpu_connector_dvi_encoder()
1148 return drm_encoder_find(connector->dev, enc_id); in amdgpu_connector_dvi_encoder()
1152 static void amdgpu_connector_dvi_force(struct drm_connector *connector) in amdgpu_connector_dvi_force() argument
1154 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_dvi_force()
1155 if (connector->force == DRM_FORCE_ON) in amdgpu_connector_dvi_force()
1157 if (connector->force == DRM_FORCE_ON_DIGITAL) in amdgpu_connector_dvi_force()
1161 static int amdgpu_connector_dvi_mode_valid(struct drm_connector *connector, in amdgpu_connector_dvi_mode_valid() argument
1164 struct drm_device *dev = connector->dev; in amdgpu_connector_dvi_mode_valid()
1166 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_dvi_mode_valid()
1175 } else if (drm_detect_hdmi_monitor(amdgpu_connector_edid(connector))) { in amdgpu_connector_dvi_mode_valid()
1208 static int amdgpu_connector_dp_get_modes(struct drm_connector *connector) in amdgpu_connector_dp_get_modes() argument
1210 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_dp_get_modes()
1212 struct drm_encoder *encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_connector_dp_get_modes()
1215 if ((connector->connector_type == DRM_MODE_CONNECTOR_eDP) || in amdgpu_connector_dp_get_modes()
1216 (connector->connector_type == DRM_MODE_CONNECTOR_LVDS)) { in amdgpu_connector_dp_get_modes()
1219 if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) { in amdgpu_connector_dp_get_modes()
1221 amdgpu_atombios_encoder_set_edp_panel_power(connector, in amdgpu_connector_dp_get_modes()
1223 amdgpu_connector_get_edid(connector); in amdgpu_connector_dp_get_modes()
1224 ret = amdgpu_connector_ddc_get_modes(connector); in amdgpu_connector_dp_get_modes()
1226 amdgpu_atombios_encoder_set_edp_panel_power(connector, in amdgpu_connector_dp_get_modes()
1230 if (amdgpu_connector_encoder_get_dp_bridge_encoder_id(connector) != in amdgpu_connector_dp_get_modes()
1235 amdgpu_connector_get_edid(connector); in amdgpu_connector_dp_get_modes()
1236 ret = amdgpu_connector_ddc_get_modes(connector); in amdgpu_connector_dp_get_modes()
1241 amdgpu_connector_fixup_lcd_native_mode(encoder, connector); in amdgpu_connector_dp_get_modes()
1243 amdgpu_connector_add_common_modes(encoder, connector); in amdgpu_connector_dp_get_modes()
1255 drm_mode_probed_add(connector, mode); in amdgpu_connector_dp_get_modes()
1257 connector->display_info.width_mm = mode->width_mm; in amdgpu_connector_dp_get_modes()
1258 connector->display_info.height_mm = mode->height_mm; in amdgpu_connector_dp_get_modes()
1260 amdgpu_connector_add_common_modes(encoder, connector); in amdgpu_connector_dp_get_modes()
1264 if (amdgpu_connector_encoder_get_dp_bridge_encoder_id(connector) != in amdgpu_connector_dp_get_modes()
1269 amdgpu_connector_get_edid(connector); in amdgpu_connector_dp_get_modes()
1270 ret = amdgpu_connector_ddc_get_modes(connector); in amdgpu_connector_dp_get_modes()
1272 amdgpu_get_native_mode(connector); in amdgpu_connector_dp_get_modes()
1278 u16 amdgpu_connector_encoder_get_dp_bridge_encoder_id(struct drm_connector *connector) in amdgpu_connector_encoder_get_dp_bridge_encoder_id() argument
1285 if (connector->encoder_ids[i] == 0) in amdgpu_connector_encoder_get_dp_bridge_encoder_id()
1288 encoder = drm_encoder_find(connector->dev, in amdgpu_connector_encoder_get_dp_bridge_encoder_id()
1289 connector->encoder_ids[i]); in amdgpu_connector_encoder_get_dp_bridge_encoder_id()
1307 static bool amdgpu_connector_encoder_is_hbr2(struct drm_connector *connector) in amdgpu_connector_encoder_is_hbr2() argument
1315 if (connector->encoder_ids[i] == 0) in amdgpu_connector_encoder_is_hbr2()
1317 encoder = drm_encoder_find(connector->dev, in amdgpu_connector_encoder_is_hbr2()
1318 connector->encoder_ids[i]); in amdgpu_connector_encoder_is_hbr2()
1330 bool amdgpu_connector_is_dp12_capable(struct drm_connector *connector) in amdgpu_connector_is_dp12_capable() argument
1332 struct drm_device *dev = connector->dev; in amdgpu_connector_is_dp12_capable()
1336 amdgpu_connector_encoder_is_hbr2(connector)) { in amdgpu_connector_is_dp12_capable()
1344 amdgpu_connector_dp_detect(struct drm_connector *connector, bool force) in amdgpu_connector_dp_detect() argument
1346 struct drm_device *dev = connector->dev; in amdgpu_connector_dp_detect()
1348 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_dp_detect()
1351 struct drm_encoder *encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_connector_dp_detect()
1354 r = pm_runtime_get_sync(connector->dev->dev); in amdgpu_connector_dp_detect()
1358 if (!force && amdgpu_connector_check_hpd_status_unchanged(connector)) { in amdgpu_connector_dp_detect()
1359 ret = connector->status; in amdgpu_connector_dp_detect()
1363 amdgpu_connector_free_edid(connector); in amdgpu_connector_dp_detect()
1365 if ((connector->connector_type == DRM_MODE_CONNECTOR_eDP) || in amdgpu_connector_dp_detect()
1366 (connector->connector_type == DRM_MODE_CONNECTOR_LVDS)) { in amdgpu_connector_dp_detect()
1378 amdgpu_atombios_encoder_set_edp_panel_power(connector, in amdgpu_connector_dp_detect()
1383 amdgpu_atombios_encoder_set_edp_panel_power(connector, in amdgpu_connector_dp_detect()
1385 } else if (amdgpu_connector_encoder_get_dp_bridge_encoder_id(connector) != in amdgpu_connector_dp_detect()
1400 ret = encoder_funcs->detect(encoder, connector); in amdgpu_connector_dp_detect()
1422 amdgpu_connector_update_scratch_regs(connector, ret); in amdgpu_connector_dp_detect()
1424 pm_runtime_mark_last_busy(connector->dev->dev); in amdgpu_connector_dp_detect()
1425 pm_runtime_put_autosuspend(connector->dev->dev); in amdgpu_connector_dp_detect()
1430 static int amdgpu_connector_dp_mode_valid(struct drm_connector *connector, in amdgpu_connector_dp_mode_valid() argument
1433 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_dp_mode_valid()
1438 if ((connector->connector_type == DRM_MODE_CONNECTOR_eDP) || in amdgpu_connector_dp_mode_valid()
1439 (connector->connector_type == DRM_MODE_CONNECTOR_LVDS)) { in amdgpu_connector_dp_mode_valid()
1440 struct drm_encoder *encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_connector_dp_mode_valid()
1467 return amdgpu_atombios_dp_mode_valid_helper(connector, mode); in amdgpu_connector_dp_mode_valid()
1469 if (drm_detect_hdmi_monitor(amdgpu_connector_edid(connector))) { in amdgpu_connector_dp_mode_valid()
1518 struct drm_connector *connector; in amdgpu_connector_add() local
1532 list_for_each_entry(connector, &dev->mode_config.connector_list, head) { in amdgpu_connector_add()
1533 amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_add()
1570 connector = &amdgpu_connector->base; in amdgpu_connector_add()
1605 connector->interlace_allowed = true; in amdgpu_connector_add()
1606 connector->doublescan_allowed = true; in amdgpu_connector_add()
1648 connector->interlace_allowed = true; in amdgpu_connector_add()
1650 connector->doublescan_allowed = true; in amdgpu_connector_add()
1652 connector->doublescan_allowed = false; in amdgpu_connector_add()
1670 connector->interlace_allowed = false; in amdgpu_connector_add()
1671 connector->doublescan_allowed = false; in amdgpu_connector_add()
1693 connector->polled = DRM_CONNECTOR_POLL_CONNECT; in amdgpu_connector_add()
1694 connector->interlace_allowed = true; in amdgpu_connector_add()
1695 connector->doublescan_allowed = true; in amdgpu_connector_add()
1714 connector->interlace_allowed = true; in amdgpu_connector_add()
1715 connector->doublescan_allowed = true; in amdgpu_connector_add()
1761 connector->interlace_allowed = true; in amdgpu_connector_add()
1763 connector->doublescan_allowed = true; in amdgpu_connector_add()
1765 connector->doublescan_allowed = false; in amdgpu_connector_add()
1804 connector->interlace_allowed = true; in amdgpu_connector_add()
1806 connector->doublescan_allowed = true; in amdgpu_connector_add()
1808 connector->doublescan_allowed = false; in amdgpu_connector_add()
1848 connector->interlace_allowed = true; in amdgpu_connector_add()
1850 connector->doublescan_allowed = false; in amdgpu_connector_add()
1870 connector->interlace_allowed = false; in amdgpu_connector_add()
1871 connector->doublescan_allowed = false; in amdgpu_connector_add()
1889 connector->interlace_allowed = false; in amdgpu_connector_add()
1890 connector->doublescan_allowed = false; in amdgpu_connector_add()
1897 connector->polled = DRM_CONNECTOR_POLL_CONNECT; in amdgpu_connector_add()
1899 connector->polled = DRM_CONNECTOR_POLL_HPD; in amdgpu_connector_add()
1901 connector->display_info.subpixel_order = subpixel_order; in amdgpu_connector_add()
1902 drm_connector_register(connector); in amdgpu_connector_add()
1910 drm_connector_cleanup(connector); in amdgpu_connector_add()
1911 kfree(connector); in amdgpu_connector_add()