Lines Matching full:connector

43 void amdgpu_connector_hotplug(struct drm_connector *connector)  in amdgpu_connector_hotplug()  argument
45 struct drm_device *dev = connector->dev; in amdgpu_connector_hotplug()
47 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_hotplug()
49 /* bail if the connector does not have hpd pin, e.g., in amdgpu_connector_hotplug()
57 /* if the connector is already off, don't turn it back on */ in amdgpu_connector_hotplug()
58 if (connector->dpms != DRM_MODE_DPMS_ON) in amdgpu_connector_hotplug()
62 if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) { in amdgpu_connector_hotplug()
82 /* Turn the connector off and back on immediately, which in amdgpu_connector_hotplug()
85 drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF); in amdgpu_connector_hotplug()
86 drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON); in amdgpu_connector_hotplug()
101 int amdgpu_connector_get_monitor_bpc(struct drm_connector *connector) in amdgpu_connector_get_monitor_bpc() argument
103 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_get_monitor_bpc()
108 switch (connector->connector_type) { in amdgpu_connector_get_monitor_bpc()
112 if (connector->display_info.is_hdmi) { in amdgpu_connector_get_monitor_bpc()
113 if (connector->display_info.bpc) in amdgpu_connector_get_monitor_bpc()
114 bpc = connector->display_info.bpc; in amdgpu_connector_get_monitor_bpc()
120 if (connector->display_info.is_hdmi) { in amdgpu_connector_get_monitor_bpc()
121 if (connector->display_info.bpc) in amdgpu_connector_get_monitor_bpc()
122 bpc = connector->display_info.bpc; in amdgpu_connector_get_monitor_bpc()
129 connector->display_info.is_hdmi) { in amdgpu_connector_get_monitor_bpc()
130 if (connector->display_info.bpc) in amdgpu_connector_get_monitor_bpc()
131 bpc = connector->display_info.bpc; in amdgpu_connector_get_monitor_bpc()
136 if (connector->display_info.bpc) in amdgpu_connector_get_monitor_bpc()
137 bpc = connector->display_info.bpc; in amdgpu_connector_get_monitor_bpc()
140 connector->helper_private; in amdgpu_connector_get_monitor_bpc()
141 struct drm_encoder *encoder = connector_funcs->best_encoder(connector); in amdgpu_connector_get_monitor_bpc()
153 if (connector->display_info.is_hdmi) { in amdgpu_connector_get_monitor_bpc()
162 connector->name, bpc); in amdgpu_connector_get_monitor_bpc()
167 if (connector->display_info.max_tmds_clock > 0) { in amdgpu_connector_get_monitor_bpc()
168 /* mode_clock is clock in kHz for mode to be modeset on this connector */ in amdgpu_connector_get_monitor_bpc()
172 max_tmds_clock = connector->display_info.max_tmds_clock; in amdgpu_connector_get_monitor_bpc()
175 connector->name, mode_clock, max_tmds_clock); in amdgpu_connector_get_monitor_bpc()
179 if ((connector->display_info.edid_hdmi_rgb444_dc_modes & DRM_EDID_HDMI_DC_30) && in amdgpu_connector_get_monitor_bpc()
186 connector->name, bpc); in amdgpu_connector_get_monitor_bpc()
192 connector->name, bpc); in amdgpu_connector_get_monitor_bpc()
197 connector->name); in amdgpu_connector_get_monitor_bpc()
204 connector->name); in amdgpu_connector_get_monitor_bpc()
209 connector->name, connector->display_info.bpc, bpc); in amdgpu_connector_get_monitor_bpc()
215 amdgpu_connector_update_scratch_regs(struct drm_connector *connector, in amdgpu_connector_update_scratch_regs() argument
220 const struct drm_connector_helper_funcs *connector_funcs = connector->helper_private; in amdgpu_connector_update_scratch_regs()
223 best_encoder = connector_funcs->best_encoder(connector); in amdgpu_connector_update_scratch_regs()
225 drm_connector_for_each_possible_encoder(connector, encoder) { in amdgpu_connector_update_scratch_regs()
231 amdgpu_atombios_encoder_set_bios_scratch_regs(connector, encoder, connected); in amdgpu_connector_update_scratch_regs()
236 amdgpu_connector_find_encoder(struct drm_connector *connector, in amdgpu_connector_find_encoder() argument
241 drm_connector_for_each_possible_encoder(connector, encoder) { 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()
275 static void amdgpu_connector_get_edid(struct drm_connector *connector) in amdgpu_connector_get_edid() argument
277 struct drm_device *dev = connector->dev; in amdgpu_connector_get_edid()
279 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_get_edid()
288 if ((amdgpu_connector_encoder_get_dp_bridge_encoder_id(connector) != in amdgpu_connector_get_edid()
291 amdgpu_connector->edid = drm_get_edid(connector, in amdgpu_connector_get_edid()
293 } else if ((connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) || in amdgpu_connector_get_edid()
294 (connector->connector_type == DRM_MODE_CONNECTOR_eDP)) { in amdgpu_connector_get_edid()
300 amdgpu_connector->edid = drm_get_edid(connector, in amdgpu_connector_get_edid()
303 amdgpu_connector->edid = drm_get_edid(connector, in amdgpu_connector_get_edid()
306 amdgpu_connector->edid = drm_get_edid(connector, in amdgpu_connector_get_edid()
312 if (((connector->connector_type == DRM_MODE_CONNECTOR_LVDS) || in amdgpu_connector_get_edid()
313 (connector->connector_type == DRM_MODE_CONNECTOR_eDP))) { in amdgpu_connector_get_edid()
315 drm_connector_update_edid_property(connector, amdgpu_connector->edid); in amdgpu_connector_get_edid()
320 static void amdgpu_connector_free_edid(struct drm_connector *connector) in amdgpu_connector_free_edid() argument
322 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_free_edid()
328 static int amdgpu_connector_ddc_get_modes(struct drm_connector *connector) in amdgpu_connector_ddc_get_modes() argument
330 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_ddc_get_modes()
334 drm_connector_update_edid_property(connector, amdgpu_connector->edid); in amdgpu_connector_ddc_get_modes()
335 ret = drm_add_edid_modes(connector, amdgpu_connector->edid); in amdgpu_connector_ddc_get_modes()
338 drm_connector_update_edid_property(connector, NULL); in amdgpu_connector_ddc_get_modes()
343 amdgpu_connector_best_single_encoder(struct drm_connector *connector) in amdgpu_connector_best_single_encoder() argument
348 drm_connector_for_each_possible_encoder(connector, encoder) in amdgpu_connector_best_single_encoder()
354 static void amdgpu_get_native_mode(struct drm_connector *connector) in amdgpu_get_native_mode() argument
356 struct drm_encoder *encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_get_native_mode()
364 if (!list_empty(&connector->probed_modes)) { in amdgpu_get_native_mode()
366 list_first_entry(&connector->probed_modes, in amdgpu_get_native_mode()
414 struct drm_connector *connector) in amdgpu_connector_add_common_modes() argument
461 drm_mode_probed_add(connector, mode); in amdgpu_connector_add_common_modes()
465 static int amdgpu_connector_set_property(struct drm_connector *connector, in amdgpu_connector_set_property() argument
469 struct drm_device *dev = connector->dev; in amdgpu_connector_set_property()
478 /* need to find digital encoder on connector */ in amdgpu_connector_set_property()
479 encoder = amdgpu_connector_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in amdgpu_connector_set_property()
497 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_set_property()
498 /* need to find digital encoder on connector */ in amdgpu_connector_set_property()
499 encoder = amdgpu_connector_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in amdgpu_connector_set_property()
512 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_set_property()
513 /* need to find digital encoder on connector */ in amdgpu_connector_set_property()
514 encoder = amdgpu_connector_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in amdgpu_connector_set_property()
527 /* need to find digital encoder on connector */ in amdgpu_connector_set_property()
528 encoder = amdgpu_connector_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in amdgpu_connector_set_property()
541 /* need to find digital encoder on connector */ in amdgpu_connector_set_property()
542 encoder = amdgpu_connector_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in amdgpu_connector_set_property()
555 /* need to find digital encoder on connector */ in amdgpu_connector_set_property()
556 encoder = amdgpu_connector_find_encoder(connector, DRM_MODE_ENCODER_TMDS); in amdgpu_connector_set_property()
570 to_amdgpu_connector(connector); in amdgpu_connector_set_property()
581 if (connector->encoder) { in amdgpu_connector_set_property()
582 amdgpu_encoder = to_amdgpu_encoder(connector->encoder); in amdgpu_connector_set_property()
584 const struct drm_connector_helper_funcs *connector_funcs = connector->helper_private; in amdgpu_connector_set_property()
586 amdgpu_encoder = to_amdgpu_encoder(connector_funcs->best_encoder(connector)); in amdgpu_connector_set_property()
622 struct drm_connector *connector) in amdgpu_connector_fixup_lcd_native_mode() argument
629 list_for_each_entry_safe(mode, t, &connector->probed_modes, head) { in amdgpu_connector_fixup_lcd_native_mode()
639 list_for_each_entry_safe(mode, t, &connector->probed_modes, head) { in amdgpu_connector_fixup_lcd_native_mode()
656 static int amdgpu_connector_lvds_get_modes(struct drm_connector *connector) in amdgpu_connector_lvds_get_modes() argument
662 amdgpu_connector_get_edid(connector); in amdgpu_connector_lvds_get_modes()
663 ret = amdgpu_connector_ddc_get_modes(connector); in amdgpu_connector_lvds_get_modes()
665 encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_connector_lvds_get_modes()
667 amdgpu_connector_fixup_lcd_native_mode(encoder, connector); in amdgpu_connector_lvds_get_modes()
669 amdgpu_connector_add_common_modes(encoder, connector); in amdgpu_connector_lvds_get_modes()
674 encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_connector_lvds_get_modes()
682 drm_mode_probed_add(connector, mode); in amdgpu_connector_lvds_get_modes()
684 connector->display_info.width_mm = mode->width_mm; in amdgpu_connector_lvds_get_modes()
685 connector->display_info.height_mm = mode->height_mm; in amdgpu_connector_lvds_get_modes()
687 amdgpu_connector_add_common_modes(encoder, connector); in amdgpu_connector_lvds_get_modes()
693 static enum drm_mode_status amdgpu_connector_lvds_mode_valid(struct drm_connector *connector, in amdgpu_connector_lvds_mode_valid() argument
696 struct drm_encoder *encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_connector_lvds_mode_valid()
724 amdgpu_connector_lvds_detect(struct drm_connector *connector, bool force) in amdgpu_connector_lvds_detect() argument
726 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_lvds_detect()
727 struct drm_encoder *encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_connector_lvds_detect()
732 r = pm_runtime_get_sync(connector->dev->dev); in amdgpu_connector_lvds_detect()
734 pm_runtime_put_autosuspend(connector->dev->dev); in amdgpu_connector_lvds_detect()
750 amdgpu_connector_get_edid(connector); in amdgpu_connector_lvds_detect()
755 amdgpu_connector_update_scratch_regs(connector, ret); in amdgpu_connector_lvds_detect()
758 pm_runtime_mark_last_busy(connector->dev->dev); in amdgpu_connector_lvds_detect()
759 pm_runtime_put_autosuspend(connector->dev->dev); in amdgpu_connector_lvds_detect()
765 static void amdgpu_connector_unregister(struct drm_connector *connector) in amdgpu_connector_unregister() argument
767 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_unregister()
775 static void amdgpu_connector_destroy(struct drm_connector *connector) in amdgpu_connector_destroy() argument
777 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_destroy()
779 amdgpu_connector_free_edid(connector); in amdgpu_connector_destroy()
781 drm_connector_unregister(connector); in amdgpu_connector_destroy()
782 drm_connector_cleanup(connector); in amdgpu_connector_destroy()
783 kfree(connector); in amdgpu_connector_destroy()
786 static int amdgpu_connector_set_lcd_property(struct drm_connector *connector, in amdgpu_connector_set_lcd_property() argument
790 struct drm_device *dev = connector->dev; in amdgpu_connector_set_lcd_property()
798 if (connector->encoder) in amdgpu_connector_set_lcd_property()
799 amdgpu_encoder = to_amdgpu_encoder(connector->encoder); in amdgpu_connector_set_lcd_property()
801 const struct drm_connector_helper_funcs *connector_funcs = connector->helper_private; in amdgpu_connector_set_lcd_property()
803 amdgpu_encoder = to_amdgpu_encoder(connector_funcs->best_encoder(connector)); in amdgpu_connector_set_lcd_property()
847 static int amdgpu_connector_vga_get_modes(struct drm_connector *connector) in amdgpu_connector_vga_get_modes() argument
851 amdgpu_connector_get_edid(connector); in amdgpu_connector_vga_get_modes()
852 ret = amdgpu_connector_ddc_get_modes(connector); in amdgpu_connector_vga_get_modes()
853 amdgpu_get_native_mode(connector); in amdgpu_connector_vga_get_modes()
858 static enum drm_mode_status amdgpu_connector_vga_mode_valid(struct drm_connector *connector, in amdgpu_connector_vga_mode_valid() argument
861 struct drm_device *dev = connector->dev; in amdgpu_connector_vga_mode_valid()
873 amdgpu_connector_vga_detect(struct drm_connector *connector, bool force) in amdgpu_connector_vga_detect() argument
875 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_vga_detect()
883 r = pm_runtime_get_sync(connector->dev->dev); in amdgpu_connector_vga_detect()
885 pm_runtime_put_autosuspend(connector->dev->dev); in amdgpu_connector_vga_detect()
890 encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_connector_vga_detect()
898 amdgpu_connector_free_edid(connector); in amdgpu_connector_vga_detect()
899 amdgpu_connector_get_edid(connector); in amdgpu_connector_vga_detect()
903 connector->name); in amdgpu_connector_vga_detect()
913 amdgpu_connector_free_edid(connector); in amdgpu_connector_vga_detect()
927 ret = connector->status; in amdgpu_connector_vga_detect()
933 ret = encoder_funcs->detect(encoder, connector); in amdgpu_connector_vga_detect()
939 amdgpu_connector_update_scratch_regs(connector, ret); in amdgpu_connector_vga_detect()
943 pm_runtime_mark_last_busy(connector->dev->dev); in amdgpu_connector_vga_detect()
944 pm_runtime_put_autosuspend(connector->dev->dev); in amdgpu_connector_vga_detect()
966 amdgpu_connector_check_hpd_status_unchanged(struct drm_connector *connector) in amdgpu_connector_check_hpd_status_unchanged() argument
968 struct drm_device *dev = connector->dev; in amdgpu_connector_check_hpd_status_unchanged()
970 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_check_hpd_status_unchanged()
978 if (connector->status == status) in amdgpu_connector_check_hpd_status_unchanged()
986 struct drm_connector *connector, in amdgpu_connector_shared_ddc() argument
992 struct drm_device *dev = connector->dev; in amdgpu_connector_shared_ddc()
999 if (connector == list_connector) in amdgpu_connector_shared_ddc()
1010 amdgpu_connector_free_edid(connector); in amdgpu_connector_shared_ddc()
1025 * we need to find the DAC encoder object for this connector.
1029 * if its shared we have to set the other connector to disconnected.
1032 amdgpu_connector_dvi_detect(struct drm_connector *connector, bool force) in amdgpu_connector_dvi_detect() argument
1034 struct drm_device *dev = connector->dev; in amdgpu_connector_dvi_detect()
1036 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_dvi_detect()
1043 r = pm_runtime_get_sync(connector->dev->dev); in amdgpu_connector_dvi_detect()
1045 pm_runtime_put_autosuspend(connector->dev->dev); in amdgpu_connector_dvi_detect()
1055 if (!force && amdgpu_connector_check_hpd_status_unchanged(connector)) { in amdgpu_connector_dvi_detect()
1056 ret = connector->status; in amdgpu_connector_dvi_detect()
1079 amdgpu_connector_free_edid(connector); in amdgpu_connector_dvi_detect()
1080 amdgpu_connector_get_edid(connector); in amdgpu_connector_dvi_detect()
1084 connector->name); in amdgpu_connector_dvi_detect()
1095 amdgpu_connector_free_edid(connector); in amdgpu_connector_dvi_detect()
1106 amdgpu_connector_shared_ddc(&ret, connector, amdgpu_connector); in amdgpu_connector_dvi_detect()
1114 if ((connector->connector_type == DRM_MODE_CONNECTOR_DVID) || in amdgpu_connector_dvi_detect()
1115 (connector->connector_type == DRM_MODE_CONNECTOR_HDMIA)) in amdgpu_connector_dvi_detect()
1124 ret = connector->status; in amdgpu_connector_dvi_detect()
1132 drm_connector_for_each_possible_encoder(connector, encoder) { in amdgpu_connector_dvi_detect()
1142 ret = encoder_funcs->detect(encoder, connector); in amdgpu_connector_dvi_detect()
1153 lret = encoder_funcs->detect(encoder, connector); in amdgpu_connector_dvi_detect()
1166 amdgpu_connector_update_scratch_regs(connector, ret); in amdgpu_connector_dvi_detect()
1170 pm_runtime_mark_last_busy(connector->dev->dev); in amdgpu_connector_dvi_detect()
1171 pm_runtime_put_autosuspend(connector->dev->dev); in amdgpu_connector_dvi_detect()
1179 amdgpu_connector_dvi_encoder(struct drm_connector *connector) in amdgpu_connector_dvi_encoder() argument
1181 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_dvi_encoder()
1184 drm_connector_for_each_possible_encoder(connector, encoder) { in amdgpu_connector_dvi_encoder()
1199 drm_connector_for_each_possible_encoder(connector, encoder) in amdgpu_connector_dvi_encoder()
1205 static void amdgpu_connector_dvi_force(struct drm_connector *connector) in amdgpu_connector_dvi_force() argument
1207 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_dvi_force()
1209 if (connector->force == DRM_FORCE_ON) in amdgpu_connector_dvi_force()
1211 if (connector->force == DRM_FORCE_ON_DIGITAL) in amdgpu_connector_dvi_force()
1215 static enum drm_mode_status amdgpu_connector_dvi_mode_valid(struct drm_connector *connector, in amdgpu_connector_dvi_mode_valid() argument
1218 struct drm_device *dev = connector->dev; in amdgpu_connector_dvi_mode_valid()
1220 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_dvi_mode_valid()
1229 } else if (connector->display_info.is_hdmi) { in amdgpu_connector_dvi_mode_valid()
1263 static int amdgpu_connector_dp_get_modes(struct drm_connector *connector) in amdgpu_connector_dp_get_modes() argument
1265 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_dp_get_modes()
1267 struct drm_encoder *encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_connector_dp_get_modes()
1270 if ((connector->connector_type == DRM_MODE_CONNECTOR_eDP) || in amdgpu_connector_dp_get_modes()
1271 (connector->connector_type == DRM_MODE_CONNECTOR_LVDS)) { in amdgpu_connector_dp_get_modes()
1274 if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) { in amdgpu_connector_dp_get_modes()
1276 amdgpu_atombios_encoder_set_edp_panel_power(connector, in amdgpu_connector_dp_get_modes()
1278 amdgpu_connector_get_edid(connector); in amdgpu_connector_dp_get_modes()
1279 ret = amdgpu_connector_ddc_get_modes(connector); in amdgpu_connector_dp_get_modes()
1281 amdgpu_atombios_encoder_set_edp_panel_power(connector, in amdgpu_connector_dp_get_modes()
1285 if (amdgpu_connector_encoder_get_dp_bridge_encoder_id(connector) != in amdgpu_connector_dp_get_modes()
1290 amdgpu_connector_get_edid(connector); in amdgpu_connector_dp_get_modes()
1291 ret = amdgpu_connector_ddc_get_modes(connector); in amdgpu_connector_dp_get_modes()
1296 amdgpu_connector_fixup_lcd_native_mode(encoder, connector); in amdgpu_connector_dp_get_modes()
1298 amdgpu_connector_add_common_modes(encoder, connector); in amdgpu_connector_dp_get_modes()
1310 drm_mode_probed_add(connector, mode); in amdgpu_connector_dp_get_modes()
1312 connector->display_info.width_mm = mode->width_mm; in amdgpu_connector_dp_get_modes()
1313 connector->display_info.height_mm = mode->height_mm; in amdgpu_connector_dp_get_modes()
1315 amdgpu_connector_add_common_modes(encoder, connector); in amdgpu_connector_dp_get_modes()
1319 if (amdgpu_connector_encoder_get_dp_bridge_encoder_id(connector) != in amdgpu_connector_dp_get_modes()
1324 amdgpu_connector_get_edid(connector); in amdgpu_connector_dp_get_modes()
1325 ret = amdgpu_connector_ddc_get_modes(connector); in amdgpu_connector_dp_get_modes()
1327 amdgpu_get_native_mode(connector); in amdgpu_connector_dp_get_modes()
1333 u16 amdgpu_connector_encoder_get_dp_bridge_encoder_id(struct drm_connector *connector) in amdgpu_connector_encoder_get_dp_bridge_encoder_id() argument
1338 drm_connector_for_each_possible_encoder(connector, encoder) { in amdgpu_connector_encoder_get_dp_bridge_encoder_id()
1353 static bool amdgpu_connector_encoder_is_hbr2(struct drm_connector *connector) in amdgpu_connector_encoder_is_hbr2() argument
1359 drm_connector_for_each_possible_encoder(connector, encoder) { in amdgpu_connector_encoder_is_hbr2()
1368 bool amdgpu_connector_is_dp12_capable(struct drm_connector *connector) in amdgpu_connector_is_dp12_capable() argument
1370 struct drm_device *dev = connector->dev; in amdgpu_connector_is_dp12_capable()
1374 amdgpu_connector_encoder_is_hbr2(connector)) { in amdgpu_connector_is_dp12_capable()
1382 amdgpu_connector_dp_detect(struct drm_connector *connector, bool force) in amdgpu_connector_dp_detect() argument
1384 struct drm_device *dev = connector->dev; in amdgpu_connector_dp_detect()
1386 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_dp_detect()
1389 struct drm_encoder *encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_connector_dp_detect()
1393 r = pm_runtime_get_sync(connector->dev->dev); in amdgpu_connector_dp_detect()
1395 pm_runtime_put_autosuspend(connector->dev->dev); in amdgpu_connector_dp_detect()
1400 if (!force && amdgpu_connector_check_hpd_status_unchanged(connector)) { in amdgpu_connector_dp_detect()
1401 ret = connector->status; in amdgpu_connector_dp_detect()
1405 amdgpu_connector_free_edid(connector); in amdgpu_connector_dp_detect()
1407 if ((connector->connector_type == DRM_MODE_CONNECTOR_eDP) || in amdgpu_connector_dp_detect()
1408 (connector->connector_type == DRM_MODE_CONNECTOR_LVDS)) { in amdgpu_connector_dp_detect()
1420 amdgpu_atombios_encoder_set_edp_panel_power(connector, in amdgpu_connector_dp_detect()
1425 amdgpu_atombios_encoder_set_edp_panel_power(connector, in amdgpu_connector_dp_detect()
1427 } else if (amdgpu_connector_encoder_get_dp_bridge_encoder_id(connector) != in amdgpu_connector_dp_detect()
1444 ret = encoder_funcs->detect(encoder, connector); in amdgpu_connector_dp_detect()
1467 amdgpu_connector_update_scratch_regs(connector, ret); in amdgpu_connector_dp_detect()
1470 pm_runtime_mark_last_busy(connector->dev->dev); in amdgpu_connector_dp_detect()
1471 pm_runtime_put_autosuspend(connector->dev->dev); in amdgpu_connector_dp_detect()
1474 if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort || in amdgpu_connector_dp_detect()
1475 connector->connector_type == DRM_MODE_CONNECTOR_eDP) in amdgpu_connector_dp_detect()
1483 static enum drm_mode_status amdgpu_connector_dp_mode_valid(struct drm_connector *connector, in amdgpu_connector_dp_mode_valid() argument
1486 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_dp_mode_valid()
1491 if ((connector->connector_type == DRM_MODE_CONNECTOR_eDP) || in amdgpu_connector_dp_mode_valid()
1492 (connector->connector_type == DRM_MODE_CONNECTOR_LVDS)) { in amdgpu_connector_dp_mode_valid()
1493 struct drm_encoder *encoder = amdgpu_connector_best_single_encoder(connector); in amdgpu_connector_dp_mode_valid()
1520 return amdgpu_atombios_dp_mode_valid_helper(connector, mode); in amdgpu_connector_dp_mode_valid()
1522 if (connector->display_info.is_hdmi) { in amdgpu_connector_dp_mode_valid()
1537 amdgpu_connector_late_register(struct drm_connector *connector) in amdgpu_connector_late_register() argument
1539 struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_late_register()
1589 struct drm_connector *connector; in amdgpu_connector_add() local
1606 drm_for_each_connector_iter(connector, &iter) { in amdgpu_connector_add()
1607 amdgpu_connector = to_amdgpu_connector(connector); in amdgpu_connector_add()
1646 connector = &amdgpu_connector->base; in amdgpu_connector_add()
1685 connector->interlace_allowed = true; in amdgpu_connector_add()
1686 connector->doublescan_allowed = true; in amdgpu_connector_add()
1732 connector->interlace_allowed = true; in amdgpu_connector_add()
1734 connector->doublescan_allowed = true; in amdgpu_connector_add()
1736 connector->doublescan_allowed = false; in amdgpu_connector_add()
1756 connector->interlace_allowed = false; in amdgpu_connector_add()
1757 connector->doublescan_allowed = false; in amdgpu_connector_add()
1784 connector->interlace_allowed = true; in amdgpu_connector_add()
1785 connector->doublescan_allowed = true; in amdgpu_connector_add()
1809 connector->interlace_allowed = true; in amdgpu_connector_add()
1810 connector->doublescan_allowed = true; in amdgpu_connector_add()
1862 connector->interlace_allowed = true; in amdgpu_connector_add()
1864 connector->doublescan_allowed = true; in amdgpu_connector_add()
1866 connector->doublescan_allowed = false; in amdgpu_connector_add()
1911 connector->interlace_allowed = true; in amdgpu_connector_add()
1913 connector->doublescan_allowed = true; in amdgpu_connector_add()
1915 connector->doublescan_allowed = false; in amdgpu_connector_add()
1961 connector->interlace_allowed = true; in amdgpu_connector_add()
1963 connector->doublescan_allowed = false; in amdgpu_connector_add()
1988 connector->interlace_allowed = false; in amdgpu_connector_add()
1989 connector->doublescan_allowed = false; in amdgpu_connector_add()
2012 connector->interlace_allowed = false; in amdgpu_connector_add()
2013 connector->doublescan_allowed = false; in amdgpu_connector_add()
2020 connector->polled = DRM_CONNECTOR_POLL_CONNECT | in amdgpu_connector_add()
2024 connector->polled = DRM_CONNECTOR_POLL_HPD; in amdgpu_connector_add()
2026 connector->display_info.subpixel_order = subpixel_order; in amdgpu_connector_add()
2039 drm_connector_cleanup(connector); in amdgpu_connector_add()
2040 kfree(connector); in amdgpu_connector_add()