Lines Matching refs:connector

89 			    struct drm_connector *connector)  in drm_mode_validate_pipeline()  argument
91 struct drm_device *dev = connector->dev; in drm_mode_validate_pipeline()
97 ret = drm_connector_mode_valid(connector, mode); in drm_mode_validate_pipeline()
102 drm_connector_for_each_possible_encoder(connector, encoder, i) { in drm_mode_validate_pipeline()
138 static int drm_helper_probe_add_cmdline_mode(struct drm_connector *connector) in drm_helper_probe_add_cmdline_mode() argument
143 cmdline_mode = &connector->cmdline_mode; in drm_helper_probe_add_cmdline_mode()
148 list_for_each_entry(mode, &connector->probed_modes, head) { in drm_helper_probe_add_cmdline_mode()
162 mode = drm_mode_create_from_cmdline_mode(connector->dev, in drm_helper_probe_add_cmdline_mode()
167 drm_mode_probed_add(connector, mode); in drm_helper_probe_add_cmdline_mode()
194 enum drm_mode_status drm_connector_mode_valid(struct drm_connector *connector, in drm_connector_mode_valid() argument
198 connector->helper_private; in drm_connector_mode_valid()
203 return connector_funcs->mode_valid(connector, mode); in drm_connector_mode_valid()
225 struct drm_connector *connector; in drm_kms_helper_poll_enable() local
233 drm_for_each_connector_iter(connector, &conn_iter) { in drm_kms_helper_poll_enable()
234 if (connector->polled & (DRM_CONNECTOR_POLL_CONNECT | in drm_kms_helper_poll_enable()
261 drm_helper_probe_detect_ctx(struct drm_connector *connector, bool force) in drm_helper_probe_detect_ctx() argument
263 const struct drm_connector_helper_funcs *funcs = connector->helper_private; in drm_helper_probe_detect_ctx()
270 ret = drm_modeset_lock(&connector->dev->mode_config.connection_mutex, &ctx); in drm_helper_probe_detect_ctx()
273 ret = funcs->detect_ctx(connector, &ctx, force); in drm_helper_probe_detect_ctx()
274 else if (connector->funcs->detect) in drm_helper_probe_detect_ctx()
275 ret = connector->funcs->detect(connector, force); in drm_helper_probe_detect_ctx()
305 drm_helper_probe_detect(struct drm_connector *connector, in drm_helper_probe_detect() argument
309 const struct drm_connector_helper_funcs *funcs = connector->helper_private; in drm_helper_probe_detect()
310 struct drm_device *dev = connector->dev; in drm_helper_probe_detect()
314 return drm_helper_probe_detect_ctx(connector, force); in drm_helper_probe_detect()
321 return funcs->detect_ctx(connector, ctx, force); in drm_helper_probe_detect()
322 else if (connector->funcs->detect) in drm_helper_probe_detect()
323 return connector->funcs->detect(connector, force); in drm_helper_probe_detect()
387 int drm_helper_probe_single_connector_modes(struct drm_connector *connector, in drm_helper_probe_single_connector_modes() argument
390 struct drm_device *dev = connector->dev; in drm_helper_probe_single_connector_modes()
393 connector->helper_private; in drm_helper_probe_single_connector_modes()
404 DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n", connector->base.id, in drm_helper_probe_single_connector_modes()
405 connector->name); in drm_helper_probe_single_connector_modes()
416 list_for_each_entry(mode, &connector->modes, head) in drm_helper_probe_single_connector_modes()
419 old_status = connector->status; in drm_helper_probe_single_connector_modes()
421 if (connector->force) { in drm_helper_probe_single_connector_modes()
422 if (connector->force == DRM_FORCE_ON || in drm_helper_probe_single_connector_modes()
423 connector->force == DRM_FORCE_ON_DIGITAL) in drm_helper_probe_single_connector_modes()
424 connector->status = connector_status_connected; in drm_helper_probe_single_connector_modes()
426 connector->status = connector_status_disconnected; in drm_helper_probe_single_connector_modes()
427 if (connector->funcs->force) in drm_helper_probe_single_connector_modes()
428 connector->funcs->force(connector); in drm_helper_probe_single_connector_modes()
430 ret = drm_helper_probe_detect(connector, &ctx, true); in drm_helper_probe_single_connector_modes()
438 connector->status = ret; in drm_helper_probe_single_connector_modes()
447 if (old_status != connector->status) { in drm_helper_probe_single_connector_modes()
449 connector->base.id, in drm_helper_probe_single_connector_modes()
450 connector->name, in drm_helper_probe_single_connector_modes()
452 drm_get_connector_status_name(connector->status)); in drm_helper_probe_single_connector_modes()
472 if (connector->status == connector_status_disconnected) { in drm_helper_probe_single_connector_modes()
474 connector->base.id, connector->name); in drm_helper_probe_single_connector_modes()
475 drm_connector_update_edid_property(connector, NULL); in drm_helper_probe_single_connector_modes()
480 count = (*connector_funcs->get_modes)(connector); in drm_helper_probe_single_connector_modes()
482 if (count == 0 && connector->status == connector_status_connected) in drm_helper_probe_single_connector_modes()
483 count = drm_add_modes_noedid(connector, 1024, 768); in drm_helper_probe_single_connector_modes()
484 count += drm_helper_probe_add_cmdline_mode(connector); in drm_helper_probe_single_connector_modes()
488 drm_connector_list_update(connector); in drm_helper_probe_single_connector_modes()
490 if (connector->interlace_allowed) in drm_helper_probe_single_connector_modes()
492 if (connector->doublescan_allowed) in drm_helper_probe_single_connector_modes()
494 if (connector->stereo_allowed) in drm_helper_probe_single_connector_modes()
497 list_for_each_entry(mode, &connector->modes, head) { in drm_helper_probe_single_connector_modes()
509 connector); in drm_helper_probe_single_connector_modes()
513 connector); in drm_helper_probe_single_connector_modes()
517 drm_mode_prune_invalid(dev, &connector->modes, verbose_prune); in drm_helper_probe_single_connector_modes()
522 if (list_empty(&connector->modes)) in drm_helper_probe_single_connector_modes()
525 list_for_each_entry(mode, &connector->modes, head) in drm_helper_probe_single_connector_modes()
528 drm_mode_sort(&connector->modes); in drm_helper_probe_single_connector_modes()
530 DRM_DEBUG_KMS("[CONNECTOR:%d:%s] probed modes :\n", connector->base.id, in drm_helper_probe_single_connector_modes()
531 connector->name); in drm_helper_probe_single_connector_modes()
532 list_for_each_entry(mode, &connector->modes, head) { in drm_helper_probe_single_connector_modes()
572 struct drm_connector *connector; in output_poll_execute() local
590 drm_for_each_connector_iter(connector, &conn_iter) { in output_poll_execute()
592 if (connector->force) in output_poll_execute()
597 if (!connector->polled || connector->polled == DRM_CONNECTOR_POLL_HPD) in output_poll_execute()
600 old_status = connector->status; in output_poll_execute()
604 !(connector->polled & DRM_CONNECTOR_POLL_DISCONNECT)) in output_poll_execute()
609 connector->status = drm_helper_probe_detect(connector, NULL, false); in output_poll_execute()
610 if (old_status != connector->status) { in output_poll_execute()
626 if (connector->status == connector_status_unknown) { in output_poll_execute()
627 connector->status = old_status; in output_poll_execute()
632 new = drm_get_connector_status_name(connector->status); in output_poll_execute()
636 connector->base.id, in output_poll_execute()
637 connector->name, in output_poll_execute()
760 struct drm_connector *connector; in drm_helper_hpd_irq_event() local
770 drm_for_each_connector_iter(connector, &conn_iter) { in drm_helper_hpd_irq_event()
772 if (!(connector->polled & DRM_CONNECTOR_POLL_HPD)) in drm_helper_hpd_irq_event()
775 old_status = connector->status; in drm_helper_hpd_irq_event()
777 connector->status = drm_helper_probe_detect(connector, NULL, false); in drm_helper_hpd_irq_event()
779 connector->base.id, in drm_helper_hpd_irq_event()
780 connector->name, in drm_helper_hpd_irq_event()
782 drm_get_connector_status_name(connector->status)); in drm_helper_hpd_irq_event()
783 if (old_status != connector->status) in drm_helper_hpd_irq_event()