Lines Matching defs:connector
185 char *drm_get_connector_name(struct drm_connector *connector)
190 drm_connector_enum_list[connector->connector_type].name,
191 connector->connector_type_id);
471 * drm_mode_probed_add - add a mode to a connector's probed mode list
472 * @connector: connector the new mode
478 * Add @mode to @connector's mode list for later use.
480 void drm_mode_probed_add(struct drm_connector *connector,
483 list_add(&mode->head, &connector->probed_modes);
489 * @connector: connector list to modify
495 * Remove @mode from @connector's mode list, then free it.
497 void drm_mode_remove(struct drm_connector *connector,
501 drm_mode_destroy(connector->dev, mode);
506 * drm_connector_init - Init a preallocated connector
508 * @connector: the connector to init
509 * @funcs: callbacks for this connector
510 * @name: user visible name of the connector
515 * Initialises a preallocated connector. Connectors should be
516 * subclassed as part of driver connector objects.
522 struct drm_connector *connector,
530 ret = drm_mode_object_get(dev, &connector->base, DRM_MODE_OBJECT_CONNECTOR);
534 connector->base.properties = &connector->properties;
535 connector->dev = dev;
536 connector->funcs = funcs;
537 connector->connector_type = connector_type;
538 connector->connector_type_id =
540 INIT_LIST_HEAD(&connector->user_modes);
541 INIT_LIST_HEAD(&connector->probed_modes);
542 INIT_LIST_HEAD(&connector->modes);
543 connector->edid_blob_ptr = NULL;
544 connector->status = connector_status_unknown;
546 list_add_tail(&connector->head, &dev->mode_config.connector_list);
550 drm_object_attach_property(&connector->base,
554 drm_object_attach_property(&connector->base,
565 * drm_connector_cleanup - cleans up an initialised connector
566 * @connector: connector to cleanup
571 * Cleans up the connector but doesn't free the object.
573 void drm_connector_cleanup(struct drm_connector *connector)
575 struct drm_device *dev = connector->dev;
578 list_for_each_entry_safe(mode, t, &connector->probed_modes, head)
579 drm_mode_remove(connector, mode);
581 list_for_each_entry_safe(mode, t, &connector->modes, head)
582 drm_mode_remove(connector, mode);
584 list_for_each_entry_safe(mode, t, &connector->user_modes, head)
585 drm_mode_remove(connector, mode);
588 drm_mode_object_put(dev, &connector->base);
589 list_del(&connector->head);
598 struct drm_connector *connector;
601 list_for_each_entry(connector, &dev->mode_config.connector_list, head)
602 drm_sysfs_connector_remove(connector);
774 * drm_mode_create_dvi_i_properties - create DVI-I specific connector properties
777 * Called by a driver the first time a DVI-I connector is made.
805 * drm_create_tv_properties - create TV specific connector properties
811 * the TV specific connector properties for a given device. Caller is
826 * Basic connector properties
1020 struct drm_connector *connector;
1033 list_for_each_entry(connector, &dev->mode_config.connector_list, head)
1035 group->num_connectors++] = connector->base.id;
1055 struct drm_connector *connector, *ot;
1068 list_for_each_entry_safe(connector, ot,
1070 connector->funcs->destroy(connector);
1190 * them to the user, including CRTC, connector and framebuffer configuration.
1203 struct drm_connector *connector;
1331 list_for_each_entry(connector,
1335 connector->base.id,
1336 drm_get_connector_name(connector));
1337 if (put_user(connector->base.id,
1428 * drm_mode_getconnector - get connector configuration
1437 * Construct a connector configuration structure to return to the user.
1449 struct drm_connector *connector;
1478 connector = obj_to_connector(obj);
1480 props_count = connector->properties.count;
1483 if (connector->encoder_ids[i] != 0) {
1489 connector->funcs->fill_modes(connector,
1495 list_for_each_entry(mode, &connector->modes, head)
1498 out_resp->connector_id = connector->base.id;
1499 out_resp->connector_type = connector->connector_type;
1500 out_resp->connector_type_id = connector->connector_type_id;
1501 out_resp->mm_width = connector->display_info.width_mm;
1502 out_resp->mm_height = connector->display_info.height_mm;
1503 out_resp->subpixel = connector->display_info.subpixel_order;
1504 out_resp->connection = connector->status;
1505 if (connector->encoder)
1506 out_resp->encoder_id = connector->encoder->base.id;
1517 list_for_each_entry(mode, &connector->modes, head) {
1533 for (i = 0; i < connector->properties.count; i++) {
1534 if (put_user(connector->properties.ids[i],
1540 if (put_user(connector->properties.values[i],
1554 if (connector->encoder_ids[i] != 0) {
1555 if (put_user(connector->encoder_ids[i],
1877 struct drm_connector **connector_set = NULL, *connector;
2004 connector = obj_to_connector(obj);
2006 connector->base.id,
2007 drm_get_connector_name(connector));
2009 connector_set[i] = connector;
2562 * @connector: connector to add the mode to
2565 * Add @mode to @connector's user mode list.
2568 struct drm_connector *connector,
2571 list_add_tail(&mode->head, &connector->user_modes);
2577 struct drm_connector *connector;
2582 list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
2583 if (!connector->encoder)
2585 if (connector->encoder->crtc == crtc) {
2595 list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
2596 if (!connector->encoder)
2598 if (connector->encoder->crtc == crtc)
2599 list_move_tail(list.next, &connector->user_modes);
2613 struct drm_connector *connector,
2620 list_for_each_entry_safe(match_mode, t, &connector->user_modes, head) {
2637 struct drm_connector *connector;
2639 list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
2640 drm_mode_detachmode(dev, connector, mode);
2647 * drm_fb_attachmode - Attach a user mode to an connector
2653 * This attaches a user specified mode to an connector.
2663 struct drm_connector *connector;
2679 connector = obj_to_connector(obj);
2694 drm_mode_attachmode(dev, connector, mode);
2702 * drm_fb_detachmode - Detach a user specified mode from an connector
2718 struct drm_connector *connector;
2733 connector = obj_to_connector(obj);
2741 ret = drm_mode_detachmode(dev, connector, &mode);
3133 int drm_mode_connector_update_edid_property(struct drm_connector *connector,
3136 struct drm_device *dev = connector->dev;
3139 if (connector->edid_blob_ptr)
3140 drm_property_destroy_blob(dev, connector->edid_blob_ptr);
3144 connector->edid_blob_ptr = NULL;
3145 ret = drm_object_property_set_value(&connector->base, dev->mode_config.edid_property, 0);
3150 connector->edid_blob_ptr = drm_property_create_blob(connector->dev,
3152 if (!connector->edid_blob_ptr)
3155 ret = drm_object_property_set_value(&connector->base,
3157 connector->edid_blob_ptr->base.id);
3210 struct drm_connector *connector = obj_to_connector(obj);
3213 if (property == connector->dev->mode_config.dpms_property) {
3214 if (connector->funcs->dpms)
3215 (*connector->funcs->dpms)(connector, (int)value);
3217 } else if (connector->funcs->set_property)
3218 ret = connector->funcs->set_property(connector, property, value);
3222 drm_object_property_set_value(&connector->base, property, value);
3367 int drm_mode_connector_attach_encoder(struct drm_connector *connector,
3373 if (connector->encoder_ids[i] == 0) {
3374 connector->encoder_ids[i] = encoder->base.id;
3382 void drm_mode_connector_detach_encoder(struct drm_connector *connector,
3387 if (connector->encoder_ids[i] == encoder->base.id) {
3388 connector->encoder_ids[i] = 0;
3389 if (connector->encoder == encoder)
3390 connector->encoder = NULL;
3626 struct drm_connector *connector;
3636 list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
3637 connector->status = connector_status_unknown;
3639 if (connector->funcs->reset)
3640 connector->funcs->reset(connector);