Lines Matching refs:connector

80 static int drm_helper_probe_add_cmdline_mode(struct drm_connector *connector)  in drm_helper_probe_add_cmdline_mode()  argument
84 if (!connector->cmdline_mode.specified) in drm_helper_probe_add_cmdline_mode()
87 mode = drm_mode_create_from_cmdline_mode(connector->dev, in drm_helper_probe_add_cmdline_mode()
88 &connector->cmdline_mode); in drm_helper_probe_add_cmdline_mode()
92 drm_mode_probed_add(connector, mode); in drm_helper_probe_add_cmdline_mode()
96 static int drm_helper_probe_single_connector_modes_merge_bits(struct drm_connector *connector, in drm_helper_probe_single_connector_modes_merge_bits() argument
99 struct drm_device *dev = connector->dev; in drm_helper_probe_single_connector_modes_merge_bits()
102 connector->helper_private; in drm_helper_probe_single_connector_modes_merge_bits()
110 DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n", connector->base.id, in drm_helper_probe_single_connector_modes_merge_bits()
111 connector->name); in drm_helper_probe_single_connector_modes_merge_bits()
113 list_for_each_entry(mode, &connector->modes, head) in drm_helper_probe_single_connector_modes_merge_bits()
116 if (connector->force) { in drm_helper_probe_single_connector_modes_merge_bits()
117 if (connector->force == DRM_FORCE_ON || in drm_helper_probe_single_connector_modes_merge_bits()
118 connector->force == DRM_FORCE_ON_DIGITAL) in drm_helper_probe_single_connector_modes_merge_bits()
119 connector->status = connector_status_connected; in drm_helper_probe_single_connector_modes_merge_bits()
121 connector->status = connector_status_disconnected; in drm_helper_probe_single_connector_modes_merge_bits()
122 if (connector->funcs->force) in drm_helper_probe_single_connector_modes_merge_bits()
123 connector->funcs->force(connector); in drm_helper_probe_single_connector_modes_merge_bits()
125 old_status = connector->status; in drm_helper_probe_single_connector_modes_merge_bits()
127 connector->status = connector->funcs->detect(connector, true); in drm_helper_probe_single_connector_modes_merge_bits()
135 if (old_status != connector->status) { in drm_helper_probe_single_connector_modes_merge_bits()
137 connector->base.id, in drm_helper_probe_single_connector_modes_merge_bits()
138 connector->name, in drm_helper_probe_single_connector_modes_merge_bits()
139 old_status, connector->status); in drm_helper_probe_single_connector_modes_merge_bits()
160 if (connector->status == connector_status_disconnected) { in drm_helper_probe_single_connector_modes_merge_bits()
162 connector->base.id, connector->name); in drm_helper_probe_single_connector_modes_merge_bits()
163 drm_mode_connector_update_edid_property(connector, NULL); in drm_helper_probe_single_connector_modes_merge_bits()
169 count = drm_load_edid_firmware(connector); in drm_helper_probe_single_connector_modes_merge_bits()
173 if (connector->override_edid) { in drm_helper_probe_single_connector_modes_merge_bits()
174 struct edid *edid = (struct edid *) connector->edid_blob_ptr->data; in drm_helper_probe_single_connector_modes_merge_bits()
176 count = drm_add_edid_modes(connector, edid); in drm_helper_probe_single_connector_modes_merge_bits()
177 drm_edid_to_eld(connector, edid); in drm_helper_probe_single_connector_modes_merge_bits()
179 count = (*connector_funcs->get_modes)(connector); in drm_helper_probe_single_connector_modes_merge_bits()
182 if (count == 0 && connector->status == connector_status_connected) in drm_helper_probe_single_connector_modes_merge_bits()
183 count = drm_add_modes_noedid(connector, 1024, 768); in drm_helper_probe_single_connector_modes_merge_bits()
184 count += drm_helper_probe_add_cmdline_mode(connector); in drm_helper_probe_single_connector_modes_merge_bits()
188 drm_mode_connector_list_update(connector, merge_type_bits); in drm_helper_probe_single_connector_modes_merge_bits()
190 if (connector->interlace_allowed) in drm_helper_probe_single_connector_modes_merge_bits()
192 if (connector->doublescan_allowed) in drm_helper_probe_single_connector_modes_merge_bits()
194 if (connector->stereo_allowed) in drm_helper_probe_single_connector_modes_merge_bits()
197 list_for_each_entry(mode, &connector->modes, head) { in drm_helper_probe_single_connector_modes_merge_bits()
208 mode->status = connector_funcs->mode_valid(connector, in drm_helper_probe_single_connector_modes_merge_bits()
213 drm_mode_prune_invalid(dev, &connector->modes, verbose_prune); in drm_helper_probe_single_connector_modes_merge_bits()
215 if (list_empty(&connector->modes)) in drm_helper_probe_single_connector_modes_merge_bits()
218 list_for_each_entry(mode, &connector->modes, head) in drm_helper_probe_single_connector_modes_merge_bits()
221 drm_mode_sort(&connector->modes); in drm_helper_probe_single_connector_modes_merge_bits()
223 DRM_DEBUG_KMS("[CONNECTOR:%d:%s] probed modes :\n", connector->base.id, in drm_helper_probe_single_connector_modes_merge_bits()
224 connector->name); in drm_helper_probe_single_connector_modes_merge_bits()
225 list_for_each_entry(mode, &connector->modes, head) { in drm_helper_probe_single_connector_modes_merge_bits()
251 int drm_helper_probe_single_connector_modes(struct drm_connector *connector, in drm_helper_probe_single_connector_modes() argument
254 return drm_helper_probe_single_connector_modes_merge_bits(connector, maxX, maxY, true); in drm_helper_probe_single_connector_modes()
267 int drm_helper_probe_single_connector_modes_nomerge(struct drm_connector *connector, in drm_helper_probe_single_connector_modes_nomerge() argument
270 return drm_helper_probe_single_connector_modes_merge_bits(connector, maxX, maxY, false); in drm_helper_probe_single_connector_modes_nomerge()
304 struct drm_connector *connector; in output_poll_execute() local
316 list_for_each_entry(connector, &dev->mode_config.connector_list, head) { in output_poll_execute()
319 if (connector->force) in output_poll_execute()
324 if (!connector->polled || connector->polled == DRM_CONNECTOR_POLL_HPD) in output_poll_execute()
329 old_status = connector->status; in output_poll_execute()
333 !(connector->polled & DRM_CONNECTOR_POLL_DISCONNECT)) in output_poll_execute()
336 connector->status = connector->funcs->detect(connector, false); in output_poll_execute()
337 if (old_status != connector->status) { in output_poll_execute()
353 if (connector->status == connector_status_unknown) { in output_poll_execute()
354 connector->status = old_status; in output_poll_execute()
359 new = drm_get_connector_status_name(connector->status); in output_poll_execute()
363 connector->base.id, in output_poll_execute()
364 connector->name, in output_poll_execute()
412 struct drm_connector *connector; in drm_kms_helper_poll_enable() local
417 list_for_each_entry(connector, &dev->mode_config.connector_list, head) { in drm_kms_helper_poll_enable()
418 if (connector->polled & (DRM_CONNECTOR_POLL_CONNECT | in drm_kms_helper_poll_enable()
491 struct drm_connector *connector; in drm_helper_hpd_irq_event() local
499 list_for_each_entry(connector, &dev->mode_config.connector_list, head) { in drm_helper_hpd_irq_event()
502 if (!(connector->polled & DRM_CONNECTOR_POLL_HPD)) in drm_helper_hpd_irq_event()
505 old_status = connector->status; in drm_helper_hpd_irq_event()
507 connector->status = connector->funcs->detect(connector, false); in drm_helper_hpd_irq_event()
509 connector->base.id, in drm_helper_hpd_irq_event()
510 connector->name, in drm_helper_hpd_irq_event()
512 drm_get_connector_status_name(connector->status)); in drm_helper_hpd_irq_event()
513 if (old_status != connector->status) in drm_helper_hpd_irq_event()