• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/sys/dev/drm2/

Lines Matching defs:connector

187 char *drm_get_connector_name(struct drm_connector *connector)
192 drm_connector_enum_list[connector->connector_type].name,
193 connector->connector_type_id);
473 * drm_mode_probed_add - add a mode to a connector's probed mode list
474 * @connector: connector the new mode
480 * Add @mode to @connector's mode list for later use.
482 void drm_mode_probed_add(struct drm_connector *connector,
485 list_add(&mode->head, &connector->probed_modes);
491 * @connector: connector list to modify
497 * Remove @mode from @connector's mode list, then free it.
499 void drm_mode_remove(struct drm_connector *connector,
503 drm_mode_destroy(connector->dev, mode);
508 * drm_connector_init - Init a preallocated connector
510 * @connector: the connector to init
511 * @funcs: callbacks for this connector
512 * @name: user visible name of the connector
517 * Initialises a preallocated connector. Connectors should be
518 * subclassed as part of driver connector objects.
524 struct drm_connector *connector,
532 ret = drm_mode_object_get(dev, &connector->base, DRM_MODE_OBJECT_CONNECTOR);
536 connector->base.properties = &connector->properties;
537 connector->dev = dev;
538 connector->funcs = funcs;
539 connector->connector_type = connector_type;
540 connector->connector_type_id =
542 INIT_LIST_HEAD(&connector->user_modes);
543 INIT_LIST_HEAD(&connector->probed_modes);
544 INIT_LIST_HEAD(&connector->modes);
545 connector->edid_blob_ptr = NULL;
546 connector->status = connector_status_unknown;
548 list_add_tail(&connector->head, &dev->mode_config.connector_list);
552 drm_object_attach_property(&connector->base,
556 drm_object_attach_property(&connector->base,
567 * drm_connector_cleanup - cleans up an initialised connector
568 * @connector: connector to cleanup
573 * Cleans up the connector but doesn't free the object.
575 void drm_connector_cleanup(struct drm_connector *connector)
577 struct drm_device *dev = connector->dev;
580 list_for_each_entry_safe(mode, t, &connector->probed_modes, head)
581 drm_mode_remove(connector, mode);
583 list_for_each_entry_safe(mode, t, &connector->modes, head)
584 drm_mode_remove(connector, mode);
586 list_for_each_entry_safe(mode, t, &connector->user_modes, head)
587 drm_mode_remove(connector, mode);
590 drm_mode_object_put(dev, &connector->base);
591 list_del(&connector->head);
600 struct drm_connector *connector;
603 list_for_each_entry(connector, &dev->mode_config.connector_list, head)
604 drm_sysfs_connector_remove(connector);
785 * drm_mode_create_dvi_i_properties - create DVI-I specific connector properties
788 * Called by a driver the first time a DVI-I connector is made.
816 * drm_create_tv_properties - create TV specific connector properties
822 * the TV specific connector properties for a given device. Caller is
837 * Basic connector properties
1034 struct drm_connector *connector;
1047 list_for_each_entry(connector, &dev->mode_config.connector_list, head)
1049 group->num_connectors++] = connector->base.id;
1069 struct drm_connector *connector, *ot;
1082 list_for_each_entry_safe(connector, ot,
1084 connector->funcs->destroy(connector);
1204 * them to the user, including CRTC, connector and framebuffer configuration.
1217 struct drm_connector *connector;
1345 list_for_each_entry(connector,
1349 connector->base.id,
1350 drm_get_connector_name(connector));
1351 if (put_user(connector->base.id,
1442 * drm_mode_getconnector - get connector configuration
1451 * Construct a connector configuration structure to return to the user.
1463 struct drm_connector *connector;
1492 connector = obj_to_connector(obj);
1494 props_count = connector->properties.count;
1497 if (connector->encoder_ids[i] != 0) {
1503 connector->funcs->fill_modes(connector,
1509 list_for_each_entry(mode, &connector->modes, head)
1512 out_resp->connector_id = connector->base.id;
1513 out_resp->connector_type = connector->connector_type;
1514 out_resp->connector_type_id = connector->connector_type_id;
1515 out_resp->mm_width = connector->display_info.width_mm;
1516 out_resp->mm_height = connector->display_info.height_mm;
1517 out_resp->subpixel = connector->display_info.subpixel_order;
1518 out_resp->connection = connector->status;
1519 if (connector->encoder)
1520 out_resp->encoder_id = connector->encoder->base.id;
1531 list_for_each_entry(mode, &connector->modes, head) {
1547 for (i = 0; i < connector->properties.count; i++) {
1548 if (put_user(connector->properties.ids[i],
1554 if (put_user(connector->properties.values[i],
1568 if (connector->encoder_ids[i] != 0) {
1569 if (put_user(connector->encoder_ids[i],
1891 struct drm_connector **connector_set = NULL, *connector;
2022 connector = obj_to_connector(obj);
2024 connector->base.id,
2025 drm_get_connector_name(connector));
2027 connector_set[i] = connector;
2585 * @connector: connector to add the mode to
2588 * Add @mode to @connector's user mode list.
2591 struct drm_connector *connector,
2594 list_add_tail(&mode->head, &connector->user_modes);
2600 struct drm_connector *connector;
2605 list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
2606 if (!connector->encoder)
2608 if (connector->encoder->crtc == crtc) {
2618 list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
2619 if (!connector->encoder)
2621 if (connector->encoder->crtc == crtc)
2622 list_move_tail(list.next, &connector->user_modes);
2636 struct drm_connector *connector,
2643 list_for_each_entry_safe(match_mode, t, &connector->user_modes, head) {
2660 struct drm_connector *connector;
2662 list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
2663 drm_mode_detachmode(dev, connector, mode);
2670 * drm_fb_attachmode - Attach a user mode to an connector
2676 * This attaches a user specified mode to an connector.
2686 struct drm_connector *connector;
2702 connector = obj_to_connector(obj);
2717 drm_mode_attachmode(dev, connector, mode);
2725 * drm_fb_detachmode - Detach a user specified mode from an connector
2741 struct drm_connector *connector;
2756 connector = obj_to_connector(obj);
2764 ret = drm_mode_detachmode(dev, connector, &mode);
3167 int drm_mode_connector_update_edid_property(struct drm_connector *connector,
3170 struct drm_device *dev = connector->dev;
3173 if (connector->edid_blob_ptr)
3174 drm_property_destroy_blob(dev, connector->edid_blob_ptr);
3178 connector->edid_blob_ptr = NULL;
3179 ret = drm_object_property_set_value(&connector->base, dev->mode_config.edid_property, 0);
3184 connector->edid_blob_ptr = drm_property_create_blob(connector->dev,
3186 if (!connector->edid_blob_ptr)
3189 ret = drm_object_property_set_value(&connector->base,
3191 connector->edid_blob_ptr->base.id);
3244 struct drm_connector *connector = obj_to_connector(obj);
3247 if (property == connector->dev->mode_config.dpms_property) {
3248 if (connector->funcs->dpms)
3249 (*connector->funcs->dpms)(connector, (int)value);
3251 } else if (connector->funcs->set_property)
3252 ret = connector->funcs->set_property(connector, property, value);
3256 drm_object_property_set_value(&connector->base, property, value);
3401 int drm_mode_connector_attach_encoder(struct drm_connector *connector,
3407 if (connector->encoder_ids[i] == 0) {
3408 connector->encoder_ids[i] = encoder->base.id;
3416 void drm_mode_connector_detach_encoder(struct drm_connector *connector,
3421 if (connector->encoder_ids[i] == encoder->base.id) {
3422 connector->encoder_ids[i] = 0;
3423 if (connector->encoder == encoder)
3424 connector->encoder = NULL;
3671 struct drm_connector *connector;
3681 list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
3682 connector->status = connector_status_unknown;
3684 if (connector->funcs->reset)
3685 connector->funcs->reset(connector);