Lines Matching refs:connector

214 const char *drm_get_connector_name(const struct drm_connector *connector)
219 drm_connector_enum_list[connector->connector_type].name,
220 connector->connector_type_id);
642 * drm_mode_probed_add - add a mode to a connector's probed mode list
643 * @connector: connector the new mode
647 * Add @mode to @connector's mode list for later use.
649 void drm_mode_probed_add(struct drm_connector *connector,
652 list_add_tail(&mode->head, &connector->probed_modes, (caddr_t)mode);
657 * @connector: connector list to modify
661 * Remove @mode from @connector's mode list, then free it.
663 void drm_mode_remove(struct drm_connector *connector,
667 drm_mode_destroy(connector->dev, mode);
671 * drm_connector_init - Init a preallocated connector
673 * @connector: the connector to init
674 * @funcs: callbacks for this connector
675 * @name: user visible name of the connector
678 * Initialises a preallocated connector. Connectors should be
679 * subclassed as part of driver connector objects.
685 struct drm_connector *connector,
693 ret = drm_mode_object_get(dev, &connector->base, DRM_MODE_OBJECT_CONNECTOR);
697 connector->base.properties = &connector->properties;
698 connector->dev = dev;
699 connector->funcs = funcs;
700 connector->connector_type = connector_type;
701 connector->connector_type_id =
703 INIT_LIST_HEAD(&connector->probed_modes);
704 INIT_LIST_HEAD(&connector->modes);
705 connector->edid_blob_ptr = NULL;
706 connector->status = connector_status_unknown;
708 list_add_tail(&connector->head, &dev->mode_config.connector_list, (caddr_t)connector);
712 drm_object_attach_property(&connector->base,
716 drm_object_attach_property(&connector->base,
726 * drm_connector_cleanup - cleans up an initialised connector
727 * @connector: connector to cleanup
730 * Cleans up the connector but doesn't free the object.
732 void drm_connector_cleanup(struct drm_connector *connector)
734 struct drm_device *dev = connector->dev;
737 list_for_each_entry_safe(mode, t, struct drm_display_mode, &connector->probed_modes, head)
738 drm_mode_remove(connector, mode);
740 list_for_each_entry_safe(mode, t, struct drm_display_mode, &connector->modes, head)
741 drm_mode_remove(connector, mode);
743 drm_mode_object_put(dev, &connector->base);
744 list_del(&connector->head);
752 struct drm_connector *connector;
756 list_for_each_entry(connector, struct drm_connector, &dev->mode_config.connector_list, head)
757 drm_sysfs_connector_remove(connector);
972 * drm_mode_create_dvi_i_properties - create DVI-I specific connector properties
975 * Called by a driver the first time a DVI-I connector is made.
1002 * drm_create_tv_properties - create TV specific connector properties
1008 * the TV specific connector properties for a given device. Caller is
1023 * Basic connector properties
1176 struct drm_connector *connector;
1189 list_for_each_entry(connector, struct drm_connector, &dev->mode_config.connector_list, head)
1191 group->num_connectors++] = connector->base.id;
1278 * them to the user, including CRTC, connector and framebuffer configuration.
1291 struct drm_connector *connector;
1422 list_for_each_entry(connector, struct drm_connector,
1426 connector->base.id,
1427 drm_get_connector_name(connector));
1428 if (put_user(connector->base.id,
1517 * drm_mode_getconnector - get connector configuration
1524 * Construct a connector configuration structure to return to the user.
1536 struct drm_connector *connector;
1565 connector = obj_to_connector(obj);
1567 props_count = connector->properties.count;
1570 if (connector->encoder_ids[i] != 0) {
1576 connector->funcs->fill_modes(connector,
1582 list_for_each_entry(mode, struct drm_display_mode, &connector->modes, head)
1585 out_resp->connector_id = connector->base.id;
1586 out_resp->connector_type = connector->connector_type;
1587 out_resp->connector_type_id = connector->connector_type_id;
1588 out_resp->mm_width = connector->display_info.width_mm;
1589 out_resp->mm_height = connector->display_info.height_mm;
1590 out_resp->subpixel = connector->display_info.subpixel_order;
1591 out_resp->connection = connector->status;
1592 if (connector->encoder)
1593 out_resp->encoder_id = connector->encoder->base.id;
1604 list_for_each_entry(mode, struct drm_display_mode, &connector->modes, head) {
1620 for (i = 0; i < connector->properties.count; i++) {
1621 if (put_user(connector->properties.ids[i],
1627 if (put_user(connector->properties.values[i],
1641 if (connector->encoder_ids[i] != 0) {
1642 if (put_user(connector->encoder_ids[i],
2000 struct drm_connector **connector_set = NULL, *connector;
2128 connector = obj_to_connector(obj);
2130 connector->base.id,
2131 drm_get_connector_name(connector));
2133 connector_set[i] = connector;
3080 int drm_mode_connector_update_edid_property(struct drm_connector *connector,
3083 struct drm_device *dev = connector->dev;
3086 if (connector->edid_blob_ptr)
3087 drm_property_destroy_blob(dev, connector->edid_blob_ptr);
3091 connector->edid_blob_ptr = NULL;
3092 ret = drm_object_property_set_value(&connector->base, dev->mode_config.edid_property, 0);
3097 connector->edid_blob_ptr = drm_property_create_blob(connector->dev,
3099 if (!connector->edid_blob_ptr)
3102 ret = drm_object_property_set_value(&connector->base,
3104 connector->edid_blob_ptr->base.id);
3155 struct drm_connector *connector = obj_to_connector(obj);
3158 if (property == connector->dev->mode_config.dpms_property) {
3159 if (connector->funcs->dpms)
3160 (*connector->funcs->dpms)(connector, (int)value);
3162 } else if (connector->funcs->set_property)
3163 ret = connector->funcs->set_property(connector, property, value);
3167 ret = drm_object_property_set_value(&connector->base, property, value);
3312 int drm_mode_connector_attach_encoder(struct drm_connector *connector,
3318 if (connector->encoder_ids[i] == 0) {
3319 connector->encoder_ids[i] = encoder->base.id;
3326 void drm_mode_connector_detach_encoder(struct drm_connector *connector,
3331 if (connector->encoder_ids[i] == encoder->base.id) {
3332 connector->encoder_ids[i] = 0;
3333 if (connector->encoder == encoder)
3334 connector->encoder = NULL;
3588 struct drm_connector *connector;
3598 list_for_each_entry(connector, struct drm_connector, &dev->mode_config.connector_list, head)
3599 if (connector->funcs->reset)
3600 connector->funcs->reset(connector);
3893 struct drm_connector *connector, *ot;
3906 list_for_each_entry_safe(connector, ot, struct drm_connector,
3908 connector->funcs->destroy(connector);