Lines Matching defs:connector

215  * drm_get_connector_status_name - return a string for connector status
216 * @status: connector status to compute name of
754 * @connector: connector list to modify
757 * Remove @mode from @connector's mode list, then free it.
759 static void drm_mode_remove(struct drm_connector *connector,
763 drm_mode_destroy(connector->dev, mode);
768 * @connector: connector to quwery
771 * The kernel supports per-connector configration of its consoles through
774 * particular connector. This is typically only used during the early fbdev
777 static void drm_connector_get_cmdline_mode(struct drm_connector *connector)
779 struct drm_cmdline_mode *mode = &connector->cmdline_mode;
782 if (fb_get_options(connector->name, &option))
786 connector,
806 DRM_INFO("forcing %s connector %s\n", connector->name, s);
807 connector->force = mode->force;
810 DRM_DEBUG_KMS("cmdline mode for connector %s %dx%d@%dHz%s%s%s\n",
811 connector->name,
820 * drm_connector_init - Init a preallocated connector
822 * @connector: the connector to init
823 * @funcs: callbacks for this connector
824 * @connector_type: user visible type of the connector
826 * Initialises a preallocated connector. Connectors should be
827 * subclassed as part of driver connector objects.
833 struct drm_connector *connector,
843 ret = drm_mode_object_get_reg(dev, &connector->base, DRM_MODE_OBJECT_CONNECTOR, false);
847 connector->base.properties = &connector->properties;
848 connector->dev = dev;
849 connector->funcs = funcs;
850 connector->connector_type = connector_type;
851 connector->connector_type_id =
853 if (connector->connector_type_id < 0) {
854 ret = connector->connector_type_id;
857 connector->name =
860 connector->connector_type_id);
861 if (!connector->name) {
866 INIT_LIST_HEAD(&connector->probed_modes);
867 INIT_LIST_HEAD(&connector->modes);
868 connector->edid_blob_ptr = NULL;
869 connector->status = connector_status_unknown;
871 drm_connector_get_cmdline_mode(connector);
873 list_add_tail(&connector->head, &dev->mode_config.connector_list);
877 drm_object_attach_property(&connector->base,
881 drm_object_attach_property(&connector->base,
884 connector->debugfs_entry = NULL;
888 drm_mode_object_put(dev, &connector->base);
898 * drm_connector_cleanup - cleans up an initialised connector
899 * @connector: connector to cleanup
901 * Cleans up the connector but doesn't free the object.
903 void drm_connector_cleanup(struct drm_connector *connector)
905 struct drm_device *dev = connector->dev;
908 list_for_each_entry_safe(mode, t, &connector->probed_modes, head)
909 drm_mode_remove(connector, mode);
911 list_for_each_entry_safe(mode, t, &connector->modes, head)
912 drm_mode_remove(connector, mode);
914 ida_remove(&drm_connector_enum_list[connector->connector_type].ida,
915 connector->connector_type_id);
917 drm_mode_object_put(dev, &connector->base);
918 kfree(connector->name);
919 connector->name = NULL;
920 list_del(&connector->head);
926 * drm_connector_index - find the index of a registered connector
927 * @connector: connector to find index for
929 * Given a registered connector, return the index of that connector within a DRM
932 unsigned int drm_connector_index(struct drm_connector *connector)
937 list_for_each_entry(tmp, &connector->dev->mode_config.connector_list, head) {
938 if (tmp == connector)
949 * drm_connector_register - register a connector
950 * @connector: the connector to register
952 * Register userspace interfaces for a connector
957 int drm_connector_register(struct drm_connector *connector)
961 drm_mode_object_register(connector->dev, &connector->base);
963 ret = drm_sysfs_connector_add(connector);
967 ret = drm_debugfs_connector_add(connector);
969 drm_sysfs_connector_remove(connector);
978 * drm_connector_unregister - unregister a connector
979 * @connector: the connector to unregister
981 * Unregister userspace interfaces for a connector
983 void drm_connector_unregister(struct drm_connector *connector)
985 drm_sysfs_connector_remove(connector);
986 drm_debugfs_connector_remove(connector);
992 * drm_connector_unplug_all - unregister connector userspace interfaces
995 * This function unregisters all connector userspace interfaces in sysfs. Should
1001 struct drm_connector *connector;
1004 list_for_each_entry(connector, &dev->mode_config.connector_list, head)
1005 drm_connector_unregister(connector);
1017 * subclassed as part of driver connector objects.
1350 * drm_mode_create_dvi_i_properties - create DVI-I specific connector properties
1353 * Called by a driver the first time a DVI-I connector is made.
1381 * drm_create_tv_properties - create TV specific connector properties
1387 * the TV specific connector properties for a given device. Caller is
1402 * Basic connector properties
1573 struct drm_connector *connector;
1587 list_for_each_entry(connector, &dev->mode_config.connector_list, head)
1589 group->num_connectors++] = connector->base.id;
1692 * them to the user, including CRTC, connector and framebuffer configuration.
1705 struct drm_connector *connector;
1836 list_for_each_entry(connector,
1840 connector->base.id,
1841 connector->name);
1842 if (put_user(connector->base.id,
1939 * drm_mode_getconnector - get connector configuration
1944 * Construct a connector configuration structure to return to the user.
1955 struct drm_connector *connector;
1978 connector = drm_connector_find(dev, out_resp->connector_id);
1979 if (!connector) {
1984 props_count = connector->properties.count;
1987 if (connector->encoder_ids[i] != 0) {
1993 connector->funcs->fill_modes(connector,
1999 list_for_each_entry(mode, &connector->modes, head)
2003 out_resp->connector_id = connector->base.id;
2004 out_resp->connector_type = connector->connector_type;
2005 out_resp->connector_type_id = connector->connector_type_id;
2006 out_resp->mm_width = connector->display_info.width_mm;
2007 out_resp->mm_height = connector->display_info.height_mm;
2008 out_resp->subpixel = connector->display_info.subpixel_order;
2009 out_resp->connection = connector->status;
2011 if (connector->encoder)
2012 out_resp->encoder_id = connector->encoder->base.id;
2024 list_for_each_entry(mode, &connector->modes, head) {
2043 for (i = 0; i < connector->properties.count; i++) {
2044 if (put_user(connector->properties.ids[i],
2050 if (put_user(connector->properties.values[i],
2064 if (connector->encoder_ids[i] != 0) {
2065 if (put_user(connector->encoder_ids[i],
2557 struct drm_connector **connector_set = NULL, *connector;
2661 connector = drm_connector_find(dev, out_id);
2662 if (!connector) {
2669 connector->base.id,
2670 connector->name);
2672 connector_set[i] = connector;
3826 * drm_mode_getproperty_ioctl - get the current value of a connector's property
4022 int drm_mode_connector_set_path_property(struct drm_connector *connector,
4025 struct drm_device *dev = connector->dev;
4029 connector->path_blob_ptr = drm_property_create_blob(connector->dev,
4031 if (!connector->path_blob_ptr)
4034 ret = drm_object_property_set_value(&connector->base,
4036 connector->path_blob_ptr->base.id);
4042 * drm_mode_connector_update_edid_property - update the edid property of a connector
4043 * @connector: drm connector
4047 * connector's edid property.
4052 int drm_mode_connector_update_edid_property(struct drm_connector *connector,
4055 struct drm_device *dev = connector->dev;
4059 if (connector->override_edid)
4062 if (connector->edid_blob_ptr)
4063 drm_property_destroy_blob(dev, connector->edid_blob_ptr);
4067 connector->edid_blob_ptr = NULL;
4068 ret = drm_object_property_set_value(&connector->base, dev->mode_config.edid_property, 0);
4073 connector->edid_blob_ptr = drm_property_create_blob(connector->dev,
4075 if (!connector->edid_blob_ptr)
4078 ret = drm_object_property_set_value(&connector->base,
4080 connector->edid_blob_ptr->base.id);
4135 * drm_mode_connector_property_set_ioctl - set the current value of a connector property
4168 struct drm_connector *connector = obj_to_connector(obj);
4171 if (property == connector->dev->mode_config.dpms_property) {
4172 if (connector->funcs->dpms)
4173 (*connector->funcs->dpms)(connector, (int)value);
4175 } else if (connector->funcs->set_property)
4176 ret = connector->funcs->set_property(connector, property, value);
4180 drm_object_property_set_value(&connector->base, property, value);
4235 * to the connector specific ioctl this one is extended to also work on crtc and
4307 * Compared to the connector specific ioctl this one is extended to also work on
4376 * drm_mode_connector_attach_encoder - attach a connector to an encoder
4377 * @connector: connector to attach
4378 * @encoder: encoder to attach @connector to
4380 * This function links up a connector to an encoder. Note that the routing
4387 int drm_mode_connector_attach_encoder(struct drm_connector *connector,
4393 if (connector->encoder_ids[i] == 0) {
4394 connector->encoder_ids[i] = encoder->base.id;
4696 * This functions calls all the crtc's, encoder's and connector's ->reset
4705 struct drm_connector *connector;
4719 list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
4720 connector->status = connector_status_unknown;
4722 if (connector->funcs->reset)
4723 connector->funcs->reset(connector);
5131 struct drm_connector *connector, *ot;
5150 list_for_each_entry_safe(connector, ot,
5152 connector->funcs->destroy(connector);