Lines Matching refs:connector

765 static void drm_mode_remove(struct drm_connector *connector,  in drm_mode_remove()  argument
769 drm_mode_destroy(connector->dev, mode); in drm_mode_remove()
816 static void drm_connector_get_cmdline_mode(struct drm_connector *connector) in drm_connector_get_cmdline_mode() argument
818 struct drm_cmdline_mode *mode = &connector->cmdline_mode; in drm_connector_get_cmdline_mode()
821 if (fb_get_options(connector->name, &option)) in drm_connector_get_cmdline_mode()
825 connector, in drm_connector_get_cmdline_mode()
845 DRM_INFO("forcing %s connector %s\n", connector->name, s); in drm_connector_get_cmdline_mode()
846 connector->force = mode->force; in drm_connector_get_cmdline_mode()
850 connector->name, in drm_connector_get_cmdline_mode()
872 struct drm_connector *connector, in drm_connector_init() argument
883 ret = drm_mode_object_get_reg(dev, &connector->base, DRM_MODE_OBJECT_CONNECTOR, false); in drm_connector_init()
887 connector->base.properties = &connector->properties; in drm_connector_init()
888 connector->dev = dev; in drm_connector_init()
889 connector->funcs = funcs; in drm_connector_init()
890 connector->connector_type = connector_type; in drm_connector_init()
891 connector->connector_type_id = in drm_connector_init()
893 if (connector->connector_type_id < 0) { in drm_connector_init()
894 ret = connector->connector_type_id; in drm_connector_init()
897 connector->name = in drm_connector_init()
900 connector->connector_type_id); in drm_connector_init()
901 if (!connector->name) { in drm_connector_init()
906 INIT_LIST_HEAD(&connector->probed_modes); in drm_connector_init()
907 INIT_LIST_HEAD(&connector->modes); in drm_connector_init()
908 connector->edid_blob_ptr = NULL; in drm_connector_init()
909 connector->status = connector_status_unknown; in drm_connector_init()
911 drm_connector_get_cmdline_mode(connector); in drm_connector_init()
915 list_add_tail(&connector->head, &config->connector_list); in drm_connector_init()
919 drm_object_attach_property(&connector->base, in drm_connector_init()
923 drm_object_attach_property(&connector->base, in drm_connector_init()
927 drm_object_attach_property(&connector->base, config->prop_crtc_id, 0); in drm_connector_init()
930 connector->debugfs_entry = NULL; in drm_connector_init()
934 drm_mode_object_put(dev, &connector->base); in drm_connector_init()
949 void drm_connector_cleanup(struct drm_connector *connector) in drm_connector_cleanup() argument
951 struct drm_device *dev = connector->dev; in drm_connector_cleanup()
954 if (connector->tile_group) { in drm_connector_cleanup()
955 drm_mode_put_tile_group(dev, connector->tile_group); in drm_connector_cleanup()
956 connector->tile_group = NULL; in drm_connector_cleanup()
959 list_for_each_entry_safe(mode, t, &connector->probed_modes, head) in drm_connector_cleanup()
960 drm_mode_remove(connector, mode); in drm_connector_cleanup()
962 list_for_each_entry_safe(mode, t, &connector->modes, head) in drm_connector_cleanup()
963 drm_mode_remove(connector, mode); in drm_connector_cleanup()
965 ida_remove(&drm_connector_enum_list[connector->connector_type].ida, in drm_connector_cleanup()
966 connector->connector_type_id); in drm_connector_cleanup()
968 kfree(connector->display_info.bus_formats); in drm_connector_cleanup()
969 drm_mode_object_put(dev, &connector->base); in drm_connector_cleanup()
970 kfree(connector->name); in drm_connector_cleanup()
971 connector->name = NULL; in drm_connector_cleanup()
972 list_del(&connector->head); in drm_connector_cleanup()
975 WARN_ON(connector->state && !connector->funcs->atomic_destroy_state); in drm_connector_cleanup()
976 if (connector->state && connector->funcs->atomic_destroy_state) in drm_connector_cleanup()
977 connector->funcs->atomic_destroy_state(connector, in drm_connector_cleanup()
978 connector->state); in drm_connector_cleanup()
980 memset(connector, 0, sizeof(*connector)); in drm_connector_cleanup()
991 unsigned int drm_connector_index(struct drm_connector *connector) in drm_connector_index() argument
995 struct drm_mode_config *config = &connector->dev->mode_config; in drm_connector_index()
999 drm_for_each_connector(tmp, connector->dev) { in drm_connector_index()
1000 if (tmp == connector) in drm_connector_index()
1019 int drm_connector_register(struct drm_connector *connector) in drm_connector_register() argument
1023 drm_mode_object_register(connector->dev, &connector->base); in drm_connector_register()
1025 ret = drm_sysfs_connector_add(connector); in drm_connector_register()
1029 ret = drm_debugfs_connector_add(connector); in drm_connector_register()
1031 drm_sysfs_connector_remove(connector); in drm_connector_register()
1045 void drm_connector_unregister(struct drm_connector *connector) in drm_connector_unregister() argument
1047 drm_sysfs_connector_remove(connector); in drm_connector_unregister()
1048 drm_debugfs_connector_remove(connector); in drm_connector_unregister()
1063 struct drm_connector *connector; in drm_connector_unplug_all() local
1066 list_for_each_entry(connector, &dev->mode_config.connector_list, head) in drm_connector_unplug_all()
1067 drm_connector_unregister(connector); in drm_connector_unplug_all()
1740 struct drm_connector *connector; in drm_mode_getresources() local
1788 drm_for_each_connector(connector, dev) in drm_mode_getresources()
1835 drm_for_each_connector(connector, dev) { in drm_mode_getresources()
1837 connector->base.id, in drm_mode_getresources()
1838 connector->name); in drm_mode_getresources()
1839 if (put_user(connector->base.id, in drm_mode_getresources()
1929 static struct drm_encoder *drm_connector_get_encoder(struct drm_connector *connector) in drm_connector_get_encoder() argument
1933 if (connector->state) in drm_connector_get_encoder()
1934 return connector->state->best_encoder; in drm_connector_get_encoder()
1935 return connector->encoder; in drm_connector_get_encoder()
1993 struct drm_connector *connector; in drm_mode_getconnector() local
2014 connector = drm_connector_find(dev, out_resp->connector_id); in drm_mode_getconnector()
2015 if (!connector) { in drm_mode_getconnector()
2021 if (connector->encoder_ids[i] != 0) in drm_mode_getconnector()
2025 connector->funcs->fill_modes(connector, in drm_mode_getconnector()
2031 list_for_each_entry(mode, &connector->modes, head) in drm_mode_getconnector()
2035 out_resp->connector_id = connector->base.id; in drm_mode_getconnector()
2036 out_resp->connector_type = connector->connector_type; in drm_mode_getconnector()
2037 out_resp->connector_type_id = connector->connector_type_id; in drm_mode_getconnector()
2038 out_resp->mm_width = connector->display_info.width_mm; in drm_mode_getconnector()
2039 out_resp->mm_height = connector->display_info.height_mm; in drm_mode_getconnector()
2040 out_resp->subpixel = connector->display_info.subpixel_order; in drm_mode_getconnector()
2041 out_resp->connection = connector->status; in drm_mode_getconnector()
2044 encoder = drm_connector_get_encoder(connector); in drm_mode_getconnector()
2057 list_for_each_entry(mode, &connector->modes, head) { in drm_mode_getconnector()
2072 ret = get_properties(&connector->base, file_priv->atomic, in drm_mode_getconnector()
2083 if (connector->encoder_ids[i] != 0) { in drm_mode_getconnector()
2084 if (put_user(connector->encoder_ids[i], in drm_mode_getconnector()
2106 struct drm_connector *connector; in drm_encoder_get_crtc() local
2112 drm_for_each_connector(connector, dev) { in drm_encoder_get_crtc()
2113 if (!connector->state) in drm_encoder_get_crtc()
2118 if (connector->state->best_encoder != encoder) in drm_encoder_get_crtc()
2121 return connector->state->crtc; in drm_encoder_get_crtc()
2624 struct drm_connector **connector_set = NULL, *connector; in drm_mode_setcrtc() local
2748 connector = drm_connector_find(dev, out_id); in drm_mode_setcrtc()
2749 if (!connector) { in drm_mode_setcrtc()
2756 connector->base.id, in drm_mode_setcrtc()
2757 connector->name); in drm_mode_setcrtc()
2759 connector_set[i] = connector; in drm_mode_setcrtc()
4619 int drm_mode_connector_set_path_property(struct drm_connector *connector, in drm_mode_connector_set_path_property() argument
4622 struct drm_device *dev = connector->dev; in drm_mode_connector_set_path_property()
4626 &connector->path_blob_ptr, in drm_mode_connector_set_path_property()
4629 &connector->base, in drm_mode_connector_set_path_property()
4646 int drm_mode_connector_set_tile_property(struct drm_connector *connector) in drm_mode_connector_set_tile_property() argument
4648 struct drm_device *dev = connector->dev; in drm_mode_connector_set_tile_property()
4652 if (!connector->has_tile) { in drm_mode_connector_set_tile_property()
4654 &connector->tile_blob_ptr, in drm_mode_connector_set_tile_property()
4657 &connector->base, in drm_mode_connector_set_tile_property()
4663 connector->tile_group->id, connector->tile_is_single_monitor, in drm_mode_connector_set_tile_property()
4664 connector->num_h_tile, connector->num_v_tile, in drm_mode_connector_set_tile_property()
4665 connector->tile_h_loc, connector->tile_v_loc, in drm_mode_connector_set_tile_property()
4666 connector->tile_h_size, connector->tile_v_size); in drm_mode_connector_set_tile_property()
4669 &connector->tile_blob_ptr, in drm_mode_connector_set_tile_property()
4672 &connector->base, in drm_mode_connector_set_tile_property()
4689 int drm_mode_connector_update_edid_property(struct drm_connector *connector, in drm_mode_connector_update_edid_property() argument
4692 struct drm_device *dev = connector->dev; in drm_mode_connector_update_edid_property()
4697 if (connector->override_edid) in drm_mode_connector_update_edid_property()
4704 &connector->edid_blob_ptr, in drm_mode_connector_update_edid_property()
4707 &connector->base, in drm_mode_connector_update_edid_property()
4834 struct drm_connector *connector = obj_to_connector(obj); in drm_mode_connector_set_obj_prop() local
4837 if (property == connector->dev->mode_config.dpms_property) { in drm_mode_connector_set_obj_prop()
4839 if (connector->funcs->dpms) in drm_mode_connector_set_obj_prop()
4840 ret = (*connector->funcs->dpms)(connector, (int)value); in drm_mode_connector_set_obj_prop()
4841 } else if (connector->funcs->set_property) in drm_mode_connector_set_obj_prop()
4842 ret = connector->funcs->set_property(connector, property, value); in drm_mode_connector_set_obj_prop()
4846 drm_object_property_set_value(&connector->base, property, value); in drm_mode_connector_set_obj_prop()
5031 int drm_mode_connector_attach_encoder(struct drm_connector *connector, in drm_mode_connector_attach_encoder() argument
5037 if (connector->encoder_ids[i] == 0) { in drm_mode_connector_attach_encoder()
5038 connector->encoder_ids[i] = encoder->base.id; in drm_mode_connector_attach_encoder()
5351 struct drm_connector *connector; in drm_mode_config_reset() local
5366 drm_for_each_connector(connector, dev) in drm_mode_config_reset()
5367 if (connector->funcs->reset) in drm_mode_config_reset()
5368 connector->funcs->reset(connector); in drm_mode_config_reset()
5787 struct drm_connector *connector, *ot; in drm_mode_config_cleanup() local
5800 list_for_each_entry_safe(connector, ot, in drm_mode_config_cleanup()
5802 connector->funcs->destroy(connector); in drm_mode_config_cleanup()