Lines Matching full:entity

25 #include <media/media-entity.h>
84 struct media_entity *entity; in find_entity() local
89 media_device_for_each_entity(entity, mdev) { in find_entity()
90 if (((media_entity_id(entity) == id) && !next) || in find_entity()
91 ((media_entity_id(entity) > id) && next)) { in find_entity()
92 return entity; in find_entity()
122 * do the wrong thing if the entity function doesn't belong to in media_device_enum_entities()
147 upad->entity = media_entity_id(kpad->entity); in media_device_kpad_to_upad()
155 struct media_entity *entity; in media_device_enum_links() local
157 entity = find_entity(mdev, links->entity); in media_device_enum_links()
158 if (entity == NULL) in media_device_enum_links()
164 for (p = 0; p < entity->num_pads; p++) { in media_device_enum_links()
168 media_device_kpad_to_upad(&entity->pads[p], &pad); in media_device_enum_links()
178 list_for_each_entry(link, &entity->links, list) { in media_device_enum_links()
182 if (link->source->entity != entity) in media_device_enum_links()
211 source = find_entity(mdev, linkd->source.entity); in media_device_setup_link()
212 sink = find_entity(mdev, linkd->sink.entity); in media_device_setup_link()
239 struct media_entity *entity; in media_device_get_topology() local
255 media_device_for_each_entity(entity, mdev) { in media_device_get_topology()
267 kentity.id = entity->graph_obj.id; in media_device_get_topology()
268 kentity.function = entity->function; in media_device_get_topology()
269 kentity.flags = entity->flags; in media_device_get_topology()
270 strscpy(kentity.name, entity->name, in media_device_get_topology()
333 kpad.entity_id = pad->entity->graph_obj.id; in media_device_get_topology()
493 __u32 entity; member
508 if (get_user(links.entity, &ulinks->entity) in media_device_enum_links32()
585 static void __media_device_unregister_entity(struct media_entity *entity) in __media_device_unregister_entity() argument
587 struct media_device *mdev = entity->graph_obj.mdev; in __media_device_unregister_entity()
592 ida_free(&mdev->entity_internal_idx, entity->internal_idx); in __media_device_unregister_entity()
594 /* Remove all interface links pointing to this entity */ in __media_device_unregister_entity()
597 if (link->entity == entity) in __media_device_unregister_entity()
602 /* Remove all data links that belong to this entity */ in __media_device_unregister_entity()
603 __media_entity_remove_links(entity); in __media_device_unregister_entity()
605 /* Remove all pads that belong to this entity */ in __media_device_unregister_entity()
606 for (i = 0; i < entity->num_pads; i++) in __media_device_unregister_entity()
607 media_gobj_destroy(&entity->pads[i].graph_obj); in __media_device_unregister_entity()
609 /* Remove the entity */ in __media_device_unregister_entity()
610 media_gobj_destroy(&entity->graph_obj); in __media_device_unregister_entity()
612 /* invoke entity_notify callbacks to handle entity removal?? */ in __media_device_unregister_entity()
614 entity->graph_obj.mdev = NULL; in __media_device_unregister_entity()
618 * media_device_register_entity - Register an entity with a media device
620 * @entity: The entity
623 struct media_entity *entity) in media_device_register_entity() argument
629 if (entity->function == MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN || in media_device_register_entity()
630 entity->function == MEDIA_ENT_F_UNKNOWN) in media_device_register_entity()
632 "Entity type for entity %s was not initialized!\n", in media_device_register_entity()
633 entity->name); in media_device_register_entity()
635 /* Warn if we apparently re-register an entity */ in media_device_register_entity()
636 WARN_ON(entity->graph_obj.mdev != NULL); in media_device_register_entity()
637 entity->graph_obj.mdev = mdev; in media_device_register_entity()
638 INIT_LIST_HEAD(&entity->links); in media_device_register_entity()
639 entity->num_links = 0; in media_device_register_entity()
640 entity->num_backlinks = 0; in media_device_register_entity()
645 entity->internal_idx = ret; in media_device_register_entity()
649 max(mdev->entity_internal_idx_max, entity->internal_idx); in media_device_register_entity()
651 /* Initialize media_gobj embedded at the entity */ in media_device_register_entity()
652 media_gobj_create(mdev, MEDIA_GRAPH_ENTITY, &entity->graph_obj); in media_device_register_entity()
655 for (i = 0; i < entity->num_pads; i++) in media_device_register_entity()
657 &entity->pads[i].graph_obj); in media_device_register_entity()
661 notify->notify(entity, notify->notify_data); in media_device_register_entity()
674 __media_device_unregister_entity(entity); in media_device_register_entity()
687 void media_device_unregister_entity(struct media_entity *entity) in media_device_unregister_entity() argument
689 struct media_device *mdev = entity->graph_obj.mdev; in media_device_unregister_entity()
695 __media_device_unregister_entity(entity); in media_device_unregister_entity()
809 struct media_entity *entity; in media_device_unregister() local
829 list_for_each_entry_safe(entity, next, &mdev->entities, graph_obj.list) in media_device_unregister()
830 __media_device_unregister_entity(entity); in media_device_unregister()