Lines Matching refs:connector
154 static void drm_connector_get_cmdline_mode(struct drm_connector *connector) in drm_connector_get_cmdline_mode() argument
156 struct drm_cmdline_mode *mode = &connector->cmdline_mode; in drm_connector_get_cmdline_mode()
159 if (fb_get_options(connector->name, &option)) in drm_connector_get_cmdline_mode()
163 connector, in drm_connector_get_cmdline_mode()
168 DRM_INFO("forcing %s connector %s\n", connector->name, in drm_connector_get_cmdline_mode()
170 connector->force = mode->force; in drm_connector_get_cmdline_mode()
175 connector->name, mode->panel_orientation); in drm_connector_get_cmdline_mode()
176 drm_connector_set_panel_orientation(connector, in drm_connector_get_cmdline_mode()
181 connector->name, mode->name, in drm_connector_get_cmdline_mode()
191 struct drm_connector *connector = in drm_connector_free() local
193 struct drm_device *dev = connector->dev; in drm_connector_free()
195 drm_mode_object_unregister(dev, &connector->base); in drm_connector_free()
196 connector->funcs->destroy(connector); in drm_connector_free()
201 struct drm_connector *connector, *n; in drm_connector_free_work_fn() local
212 llist_for_each_entry_safe(connector, n, freed, free_node) { in drm_connector_free_work_fn()
213 drm_mode_object_unregister(dev, &connector->base); in drm_connector_free_work_fn()
214 connector->funcs->destroy(connector); in drm_connector_free_work_fn()
219 struct drm_connector *connector, in __drm_connector_init() argument
233 ret = __drm_mode_object_add(dev, &connector->base, in __drm_connector_init()
239 connector->base.properties = &connector->properties; in __drm_connector_init()
240 connector->dev = dev; in __drm_connector_init()
241 connector->funcs = funcs; in __drm_connector_init()
251 connector->index = ret; in __drm_connector_init()
254 connector->connector_type = connector_type; in __drm_connector_init()
255 connector->connector_type_id = in __drm_connector_init()
257 if (connector->connector_type_id < 0) { in __drm_connector_init()
258 ret = connector->connector_type_id; in __drm_connector_init()
261 connector->name = in __drm_connector_init()
264 connector->connector_type_id); in __drm_connector_init()
265 if (!connector->name) { in __drm_connector_init()
271 connector->ddc = ddc; in __drm_connector_init()
273 INIT_LIST_HEAD(&connector->global_connector_list_entry); in __drm_connector_init()
274 INIT_LIST_HEAD(&connector->probed_modes); in __drm_connector_init()
275 INIT_LIST_HEAD(&connector->modes); in __drm_connector_init()
276 mutex_init(&connector->mutex); in __drm_connector_init()
277 mutex_init(&connector->edid_override_mutex); in __drm_connector_init()
278 connector->edid_blob_ptr = NULL; in __drm_connector_init()
279 connector->epoch_counter = 0; in __drm_connector_init()
280 connector->tile_blob_ptr = NULL; in __drm_connector_init()
281 connector->status = connector_status_unknown; in __drm_connector_init()
282 connector->display_info.panel_orientation = in __drm_connector_init()
285 drm_connector_get_cmdline_mode(connector); in __drm_connector_init()
291 list_add_tail(&connector->head, &config->connector_list); in __drm_connector_init()
297 drm_connector_attach_edid_property(connector); in __drm_connector_init()
299 drm_object_attach_property(&connector->base, in __drm_connector_init()
302 drm_object_attach_property(&connector->base, in __drm_connector_init()
306 drm_object_attach_property(&connector->base, in __drm_connector_init()
309 drm_object_attach_property(&connector->base, in __drm_connector_init()
314 drm_object_attach_property(&connector->base, config->prop_crtc_id, 0); in __drm_connector_init()
317 connector->debugfs_entry = NULL; in __drm_connector_init()
320 ida_free(connector_ida, connector->connector_type_id); in __drm_connector_init()
323 ida_free(&config->connector_ida, connector->index); in __drm_connector_init()
326 drm_mode_object_unregister(dev, &connector->base); in __drm_connector_init()
353 struct drm_connector *connector, in drm_connector_init() argument
360 return __drm_connector_init(dev, connector, funcs, connector_type, NULL); in drm_connector_init()
389 struct drm_connector *connector, in drm_connector_init_with_ddc() argument
397 return __drm_connector_init(dev, connector, funcs, connector_type, ddc); in drm_connector_init_with_ddc()
404 struct drm_connector *connector = ptr; in drm_connector_cleanup_action() local
406 drm_connector_cleanup(connector); in drm_connector_cleanup_action()
429 struct drm_connector *connector, in drmm_connector_init() argument
439 ret = __drm_connector_init(dev, connector, funcs, connector_type, ddc); in drmm_connector_init()
444 connector); in drmm_connector_init()
460 void drm_connector_attach_edid_property(struct drm_connector *connector) in drm_connector_attach_edid_property() argument
462 struct drm_mode_config *config = &connector->dev->mode_config; in drm_connector_attach_edid_property()
464 drm_object_attach_property(&connector->base, in drm_connector_attach_edid_property()
482 int drm_connector_attach_encoder(struct drm_connector *connector, in drm_connector_attach_encoder() argument
496 if (WARN_ON(connector->encoder)) in drm_connector_attach_encoder()
499 connector->possible_encoders |= drm_encoder_mask(encoder); in drm_connector_attach_encoder()
514 bool drm_connector_has_possible_encoder(struct drm_connector *connector, in drm_connector_has_possible_encoder() argument
517 return connector->possible_encoders & drm_encoder_mask(encoder); in drm_connector_has_possible_encoder()
521 static void drm_mode_remove(struct drm_connector *connector, in drm_mode_remove() argument
525 drm_mode_destroy(connector->dev, mode); in drm_mode_remove()
534 void drm_connector_cleanup(struct drm_connector *connector) in drm_connector_cleanup() argument
536 struct drm_device *dev = connector->dev; in drm_connector_cleanup()
542 if (WARN_ON(connector->registration_state == in drm_connector_cleanup()
544 drm_connector_unregister(connector); in drm_connector_cleanup()
546 if (connector->privacy_screen) { in drm_connector_cleanup()
547 drm_privacy_screen_put(connector->privacy_screen); in drm_connector_cleanup()
548 connector->privacy_screen = NULL; in drm_connector_cleanup()
551 if (connector->tile_group) { in drm_connector_cleanup()
552 drm_mode_put_tile_group(dev, connector->tile_group); in drm_connector_cleanup()
553 connector->tile_group = NULL; in drm_connector_cleanup()
556 list_for_each_entry_safe(mode, t, &connector->probed_modes, head) in drm_connector_cleanup()
557 drm_mode_remove(connector, mode); in drm_connector_cleanup()
559 list_for_each_entry_safe(mode, t, &connector->modes, head) in drm_connector_cleanup()
560 drm_mode_remove(connector, mode); in drm_connector_cleanup()
562 ida_free(&drm_connector_enum_list[connector->connector_type].ida, in drm_connector_cleanup()
563 connector->connector_type_id); in drm_connector_cleanup()
565 ida_free(&dev->mode_config.connector_ida, connector->index); in drm_connector_cleanup()
567 kfree(connector->display_info.bus_formats); in drm_connector_cleanup()
568 kfree(connector->display_info.vics); in drm_connector_cleanup()
569 drm_mode_object_unregister(dev, &connector->base); in drm_connector_cleanup()
570 kfree(connector->name); in drm_connector_cleanup()
571 connector->name = NULL; in drm_connector_cleanup()
572 fwnode_handle_put(connector->fwnode); in drm_connector_cleanup()
573 connector->fwnode = NULL; in drm_connector_cleanup()
575 list_del(&connector->head); in drm_connector_cleanup()
579 WARN_ON(connector->state && !connector->funcs->atomic_destroy_state); in drm_connector_cleanup()
580 if (connector->state && connector->funcs->atomic_destroy_state) in drm_connector_cleanup()
581 connector->funcs->atomic_destroy_state(connector, in drm_connector_cleanup()
582 connector->state); in drm_connector_cleanup()
584 mutex_destroy(&connector->mutex); in drm_connector_cleanup()
586 memset(connector, 0, sizeof(*connector)); in drm_connector_cleanup()
608 int drm_connector_register(struct drm_connector *connector) in drm_connector_register() argument
612 if (!connector->dev->registered) in drm_connector_register()
615 mutex_lock(&connector->mutex); in drm_connector_register()
616 if (connector->registration_state != DRM_CONNECTOR_INITIALIZING) in drm_connector_register()
619 ret = drm_sysfs_connector_add(connector); in drm_connector_register()
623 drm_debugfs_connector_add(connector); in drm_connector_register()
625 if (connector->funcs->late_register) { in drm_connector_register()
626 ret = connector->funcs->late_register(connector); in drm_connector_register()
631 drm_mode_object_register(connector->dev, &connector->base); in drm_connector_register()
633 connector->registration_state = DRM_CONNECTOR_REGISTERED; in drm_connector_register()
636 drm_sysfs_connector_hotplug_event(connector); in drm_connector_register()
638 if (connector->privacy_screen) in drm_connector_register()
639 drm_privacy_screen_register_notifier(connector->privacy_screen, in drm_connector_register()
640 &connector->privacy_screen_notifier); in drm_connector_register()
643 list_add_tail(&connector->global_connector_list_entry, &connector_list); in drm_connector_register()
648 drm_debugfs_connector_remove(connector); in drm_connector_register()
649 drm_sysfs_connector_remove(connector); in drm_connector_register()
651 mutex_unlock(&connector->mutex); in drm_connector_register()
664 void drm_connector_unregister(struct drm_connector *connector) in drm_connector_unregister() argument
666 mutex_lock(&connector->mutex); in drm_connector_unregister()
667 if (connector->registration_state != DRM_CONNECTOR_REGISTERED) { in drm_connector_unregister()
668 mutex_unlock(&connector->mutex); in drm_connector_unregister()
673 list_del_init(&connector->global_connector_list_entry); in drm_connector_unregister()
676 if (connector->privacy_screen) in drm_connector_unregister()
678 connector->privacy_screen, in drm_connector_unregister()
679 &connector->privacy_screen_notifier); in drm_connector_unregister()
681 if (connector->funcs->early_unregister) in drm_connector_unregister()
682 connector->funcs->early_unregister(connector); in drm_connector_unregister()
684 drm_sysfs_connector_remove(connector); in drm_connector_unregister()
685 drm_debugfs_connector_remove(connector); in drm_connector_unregister()
687 connector->registration_state = DRM_CONNECTOR_UNREGISTERED; in drm_connector_unregister()
688 mutex_unlock(&connector->mutex); in drm_connector_unregister()
694 struct drm_connector *connector; in drm_connector_unregister_all() local
698 drm_for_each_connector_iter(connector, &conn_iter) in drm_connector_unregister_all()
699 drm_connector_unregister(connector); in drm_connector_unregister_all()
705 struct drm_connector *connector; in drm_connector_register_all() local
710 drm_for_each_connector_iter(connector, &conn_iter) { in drm_connector_register_all()
711 ret = drm_connector_register(connector); in drm_connector_register_all()
1545 void drm_connector_attach_dp_subconnector_property(struct drm_connector *connector) in drm_connector_attach_dp_subconnector_property() argument
1547 struct drm_mode_config *mode_config = &connector->dev->mode_config; in drm_connector_attach_dp_subconnector_property()
1551 drm_property_create_enum(connector->dev, in drm_connector_attach_dp_subconnector_property()
1557 drm_object_attach_property(&connector->base, in drm_connector_attach_dp_subconnector_property()
1664 int drm_connector_attach_content_type_property(struct drm_connector *connector) in drm_connector_attach_content_type_property() argument
1666 if (!drm_mode_create_content_type_property(connector->dev)) in drm_connector_attach_content_type_property()
1667 drm_object_attach_property(&connector->base, in drm_connector_attach_content_type_property()
1668 connector->dev->mode_config.content_type_property, in drm_connector_attach_content_type_property()
1682 void drm_connector_attach_tv_margin_properties(struct drm_connector *connector) in drm_connector_attach_tv_margin_properties() argument
1684 struct drm_device *dev = connector->dev; in drm_connector_attach_tv_margin_properties()
1686 drm_object_attach_property(&connector->base, in drm_connector_attach_tv_margin_properties()
1689 drm_object_attach_property(&connector->base, in drm_connector_attach_tv_margin_properties()
1692 drm_object_attach_property(&connector->base, in drm_connector_attach_tv_margin_properties()
1695 drm_object_attach_property(&connector->base, in drm_connector_attach_tv_margin_properties()
1992 struct drm_connector *connector) in drm_connector_attach_vrr_capable_property() argument
1994 struct drm_device *dev = connector->dev; in drm_connector_attach_vrr_capable_property()
1997 if (!connector->vrr_capable_property) { in drm_connector_attach_vrr_capable_property()
2003 connector->vrr_capable_property = prop; in drm_connector_attach_vrr_capable_property()
2004 drm_object_attach_property(&connector->base, prop, 0); in drm_connector_attach_vrr_capable_property()
2025 int drm_connector_attach_scaling_mode_property(struct drm_connector *connector, in drm_connector_attach_scaling_mode_property() argument
2028 struct drm_device *dev = connector->dev; in drm_connector_attach_scaling_mode_property()
2062 drm_object_attach_property(&connector->base, in drm_connector_attach_scaling_mode_property()
2065 connector->scaling_mode_property = scaling_mode_property; in drm_connector_attach_scaling_mode_property()
2136 int drm_mode_create_hdmi_colorspace_property(struct drm_connector *connector) in drm_mode_create_hdmi_colorspace_property() argument
2138 struct drm_device *dev = connector->dev; in drm_mode_create_hdmi_colorspace_property()
2140 if (connector->colorspace_property) in drm_mode_create_hdmi_colorspace_property()
2143 connector->colorspace_property = in drm_mode_create_hdmi_colorspace_property()
2148 if (!connector->colorspace_property) in drm_mode_create_hdmi_colorspace_property()
2165 int drm_mode_create_dp_colorspace_property(struct drm_connector *connector) in drm_mode_create_dp_colorspace_property() argument
2167 struct drm_device *dev = connector->dev; in drm_mode_create_dp_colorspace_property()
2169 if (connector->colorspace_property) in drm_mode_create_dp_colorspace_property()
2172 connector->colorspace_property = in drm_mode_create_dp_colorspace_property()
2177 if (!connector->colorspace_property) in drm_mode_create_dp_colorspace_property()
2251 int drm_connector_set_path_property(struct drm_connector *connector, in drm_connector_set_path_property() argument
2254 struct drm_device *dev = connector->dev; in drm_connector_set_path_property()
2258 &connector->path_blob_ptr, in drm_connector_set_path_property()
2261 &connector->base, in drm_connector_set_path_property()
2280 int drm_connector_set_tile_property(struct drm_connector *connector) in drm_connector_set_tile_property() argument
2282 struct drm_device *dev = connector->dev; in drm_connector_set_tile_property()
2286 if (!connector->has_tile) { in drm_connector_set_tile_property()
2288 &connector->tile_blob_ptr, in drm_connector_set_tile_property()
2291 &connector->base, in drm_connector_set_tile_property()
2297 connector->tile_group->id, connector->tile_is_single_monitor, in drm_connector_set_tile_property()
2298 connector->num_h_tile, connector->num_v_tile, in drm_connector_set_tile_property()
2299 connector->tile_h_loc, connector->tile_v_loc, in drm_connector_set_tile_property()
2300 connector->tile_h_size, connector->tile_v_size); in drm_connector_set_tile_property()
2303 &connector->tile_blob_ptr, in drm_connector_set_tile_property()
2306 &connector->base, in drm_connector_set_tile_property()
2331 void drm_connector_set_link_status_property(struct drm_connector *connector, in drm_connector_set_link_status_property() argument
2334 struct drm_device *dev = connector->dev; in drm_connector_set_link_status_property()
2337 connector->state->link_status = link_status; in drm_connector_set_link_status_property()
2353 int drm_connector_attach_max_bpc_property(struct drm_connector *connector, in drm_connector_attach_max_bpc_property() argument
2356 struct drm_device *dev = connector->dev; in drm_connector_attach_max_bpc_property()
2359 prop = connector->max_bpc_property; in drm_connector_attach_max_bpc_property()
2365 connector->max_bpc_property = prop; in drm_connector_attach_max_bpc_property()
2368 drm_object_attach_property(&connector->base, prop, max); in drm_connector_attach_max_bpc_property()
2369 connector->state->max_requested_bpc = max; in drm_connector_attach_max_bpc_property()
2370 connector->state->max_bpc = max; in drm_connector_attach_max_bpc_property()
2386 int drm_connector_attach_hdr_output_metadata_property(struct drm_connector *connector) in drm_connector_attach_hdr_output_metadata_property() argument
2388 struct drm_device *dev = connector->dev; in drm_connector_attach_hdr_output_metadata_property()
2391 drm_object_attach_property(&connector->base, prop, 0); in drm_connector_attach_hdr_output_metadata_property()
2407 int drm_connector_attach_colorspace_property(struct drm_connector *connector) in drm_connector_attach_colorspace_property() argument
2409 struct drm_property *prop = connector->colorspace_property; in drm_connector_attach_colorspace_property()
2411 drm_object_attach_property(&connector->base, prop, DRM_MODE_COLORIMETRY_DEFAULT); in drm_connector_attach_colorspace_property()
2455 struct drm_connector *connector, bool capable) in drm_connector_set_vrr_capable_property() argument
2457 if (!connector->vrr_capable_property) in drm_connector_set_vrr_capable_property()
2460 drm_object_property_set_value(&connector->base, in drm_connector_set_vrr_capable_property()
2461 connector->vrr_capable_property, in drm_connector_set_vrr_capable_property()
2488 struct drm_connector *connector, in drm_connector_set_panel_orientation() argument
2491 struct drm_device *dev = connector->dev; in drm_connector_set_panel_orientation()
2492 struct drm_display_info *info = &connector->display_info; in drm_connector_set_panel_orientation()
2517 drm_object_attach_property(&connector->base, prop, in drm_connector_set_panel_orientation()
2538 struct drm_connector *connector, in drm_connector_set_panel_orientation_with_quirk() argument
2548 return drm_connector_set_panel_orientation(connector, in drm_connector_set_panel_orientation_with_quirk()
2566 struct drm_connector *connector, in drm_connector_set_orientation_from_panel() argument
2576 return drm_connector_set_panel_orientation(connector, orientation); in drm_connector_set_orientation_from_panel()
2596 drm_connector_create_privacy_screen_properties(struct drm_connector *connector) in drm_connector_create_privacy_screen_properties() argument
2598 if (connector->privacy_screen_sw_state_property) in drm_connector_create_privacy_screen_properties()
2602 connector->privacy_screen_sw_state_property = in drm_connector_create_privacy_screen_properties()
2603 drm_property_create_enum(connector->dev, DRM_MODE_PROP_ENUM, in drm_connector_create_privacy_screen_properties()
2607 connector->privacy_screen_hw_state_property = in drm_connector_create_privacy_screen_properties()
2608 drm_property_create_enum(connector->dev, in drm_connector_create_privacy_screen_properties()
2626 drm_connector_attach_privacy_screen_properties(struct drm_connector *connector) in drm_connector_attach_privacy_screen_properties() argument
2628 if (!connector->privacy_screen_sw_state_property) in drm_connector_attach_privacy_screen_properties()
2631 drm_object_attach_property(&connector->base, in drm_connector_attach_privacy_screen_properties()
2632 connector->privacy_screen_sw_state_property, in drm_connector_attach_privacy_screen_properties()
2635 drm_object_attach_property(&connector->base, in drm_connector_attach_privacy_screen_properties()
2636 connector->privacy_screen_hw_state_property, in drm_connector_attach_privacy_screen_properties()
2642 struct drm_connector *connector, bool set_sw_state) in drm_connector_update_privacy_screen_properties() argument
2646 drm_privacy_screen_get_state(connector->privacy_screen, in drm_connector_update_privacy_screen_properties()
2650 connector->state->privacy_screen_sw_state = sw_state; in drm_connector_update_privacy_screen_properties()
2651 drm_object_property_set_value(&connector->base, in drm_connector_update_privacy_screen_properties()
2652 connector->privacy_screen_hw_state_property, hw_state); in drm_connector_update_privacy_screen_properties()
2658 struct drm_connector *connector = in drm_connector_privacy_screen_notifier() local
2660 struct drm_device *dev = connector->dev; in drm_connector_privacy_screen_notifier()
2663 drm_connector_update_privacy_screen_properties(connector, true); in drm_connector_privacy_screen_notifier()
2666 drm_sysfs_connector_status_event(connector, in drm_connector_privacy_screen_notifier()
2667 connector->privacy_screen_sw_state_property); in drm_connector_privacy_screen_notifier()
2668 drm_sysfs_connector_status_event(connector, in drm_connector_privacy_screen_notifier()
2669 connector->privacy_screen_hw_state_property); in drm_connector_privacy_screen_notifier()
2687 struct drm_connector *connector, struct drm_privacy_screen *priv) in drm_connector_attach_privacy_screen_provider() argument
2689 connector->privacy_screen = priv; in drm_connector_attach_privacy_screen_provider()
2690 connector->privacy_screen_notifier.notifier_call = in drm_connector_attach_privacy_screen_provider()
2693 drm_connector_create_privacy_screen_properties(connector); in drm_connector_attach_privacy_screen_provider()
2694 drm_connector_update_privacy_screen_properties(connector, true); in drm_connector_attach_privacy_screen_provider()
2695 drm_connector_attach_privacy_screen_properties(connector); in drm_connector_attach_privacy_screen_provider()
2710 struct drm_connector *connector = connector_state->connector; in drm_connector_update_privacy_screen() local
2713 if (!connector->privacy_screen) in drm_connector_update_privacy_screen()
2716 ret = drm_privacy_screen_set_sw_state(connector->privacy_screen, in drm_connector_update_privacy_screen()
2719 drm_err(connector->dev, "Error updating privacy-screen sw_state\n"); in drm_connector_update_privacy_screen()
2724 drm_connector_update_privacy_screen_properties(connector, false); in drm_connector_update_privacy_screen()
2733 struct drm_connector *connector = obj_to_connector(obj); in drm_connector_set_obj_prop() local
2736 if (property == connector->dev->mode_config.dpms_property) { in drm_connector_set_obj_prop()
2737 ret = (*connector->funcs->dpms)(connector, (int)value); in drm_connector_set_obj_prop()
2738 } else if (connector->funcs->set_property) in drm_connector_set_obj_prop()
2739 ret = connector->funcs->set_property(connector, property, value); in drm_connector_set_obj_prop()
2742 drm_object_property_set_value(&connector->base, property, value); in drm_connector_set_obj_prop()
2761 static struct drm_encoder *drm_connector_get_encoder(struct drm_connector *connector) in drm_connector_get_encoder() argument
2766 if (connector->state) in drm_connector_get_encoder()
2767 return connector->state->best_encoder; in drm_connector_get_encoder()
2768 return connector->encoder; in drm_connector_get_encoder()
2809 struct drm_connector *connector; in drm_mode_getconnector() local
2826 connector = drm_connector_lookup(dev, file_priv, out_resp->connector_id); in drm_mode_getconnector()
2827 if (!connector) in drm_mode_getconnector()
2830 encoders_count = hweight32(connector->possible_encoders); in drm_mode_getconnector()
2836 drm_connector_for_each_possible_encoder(connector, encoder) { in drm_mode_getconnector()
2846 out_resp->connector_id = connector->base.id; in drm_mode_getconnector()
2847 out_resp->connector_type = connector->connector_type; in drm_mode_getconnector()
2848 out_resp->connector_type_id = connector->connector_type_id; in drm_mode_getconnector()
2855 connector->funcs->fill_modes(connector, in drm_mode_getconnector()
2860 connector->base.id, connector->name); in drm_mode_getconnector()
2863 out_resp->mm_width = connector->display_info.width_mm; in drm_mode_getconnector()
2864 out_resp->mm_height = connector->display_info.height_mm; in drm_mode_getconnector()
2865 out_resp->subpixel = connector->display_info.subpixel_order; in drm_mode_getconnector()
2866 out_resp->connection = connector->status; in drm_mode_getconnector()
2869 list_for_each_entry(mode, &connector->modes, head) { in drm_mode_getconnector()
2872 if (drm_mode_expose_to_userspace(mode, &connector->modes, in drm_mode_getconnector()
2886 list_for_each_entry(mode, &connector->modes, head) { in drm_mode_getconnector()
2908 list_for_each_entry_continue(mode, &connector->modes, head) in drm_mode_getconnector()
2919 list_for_each_entry(mode, &connector->modes, head) in drm_mode_getconnector()
2927 encoder = drm_connector_get_encoder(connector); in drm_mode_getconnector()
2936 ret = drm_mode_object_get_properties(&connector->base, file_priv->atomic, in drm_mode_getconnector()
2943 drm_connector_put(connector); in drm_mode_getconnector()
2961 struct drm_connector *connector, *found = ERR_PTR(-ENODEV); in drm_connector_find_by_fwnode() local
2968 list_for_each_entry(connector, &connector_list, global_connector_list_entry) { in drm_connector_find_by_fwnode()
2969 if (connector->fwnode == fwnode || in drm_connector_find_by_fwnode()
2970 (connector->fwnode && connector->fwnode->secondary == fwnode)) { in drm_connector_find_by_fwnode()
2971 drm_connector_get(connector); in drm_connector_find_by_fwnode()
2972 found = connector; in drm_connector_find_by_fwnode()
2996 struct drm_connector *connector; in drm_connector_oob_hotplug_event() local
2998 connector = drm_connector_find_by_fwnode(connector_fwnode); in drm_connector_oob_hotplug_event()
2999 if (IS_ERR(connector)) in drm_connector_oob_hotplug_event()
3002 if (connector->funcs->oob_hotplug_event) in drm_connector_oob_hotplug_event()
3003 connector->funcs->oob_hotplug_event(connector); in drm_connector_oob_hotplug_event()
3005 drm_connector_put(connector); in drm_connector_oob_hotplug_event()