Lines Matching refs:entity

123 			pad->entity->name, pad->index);  in dev_dbg_obj()
194 int media_entity_pads_init(struct media_entity *entity, u16 num_pads, in media_entity_pads_init() argument
197 struct media_device *mdev = entity->graph_obj.mdev; in media_entity_pads_init()
205 entity->num_pads = num_pads; in media_entity_pads_init()
206 entity->pads = pads; in media_entity_pads_init()
211 media_entity_for_each_pad(entity, iter) { in media_entity_pads_init()
212 iter->entity = entity; in media_entity_pads_init()
227 media_entity_for_each_pad(entity, iter) in media_entity_pads_init()
266 static bool media_entity_has_pad_interdep(struct media_entity *entity, in media_entity_has_pad_interdep() argument
269 if (pad0 >= entity->num_pads || pad1 >= entity->num_pads) in media_entity_has_pad_interdep()
272 if (entity->pads[pad0].flags & entity->pads[pad1].flags & in media_entity_has_pad_interdep()
276 if (!entity->ops || !entity->ops->has_pad_interdep) in media_entity_has_pad_interdep()
279 return entity->ops->has_pad_interdep(entity, pad0, pad1); in media_entity_has_pad_interdep()
283 media_entity_other(struct media_entity *entity, struct media_link *link) in media_entity_other() argument
285 if (link->source->entity == entity) in media_entity_other()
286 return link->sink->entity; in media_entity_other()
288 return link->source->entity; in media_entity_other()
293 struct media_entity *entity) in stack_push() argument
300 graph->stack[graph->top].link = entity->links.next; in stack_push()
301 graph->stack[graph->top].entity = entity; in stack_push()
306 struct media_entity *entity; in stack_pop() local
308 entity = graph->stack[graph->top].entity; in stack_pop()
311 return entity; in stack_pop()
315 #define stack_top(en) ((en)->stack[(en)->top].entity)
346 struct media_entity *entity) in media_graph_walk_start() argument
349 media_entity_enum_set(&graph->ent_enum, entity); in media_graph_walk_start()
352 graph->stack[graph->top].entity = NULL; in media_graph_walk_start()
353 stack_push(graph, entity); in media_graph_walk_start()
354 dev_dbg(entity->graph_obj.mdev->dev, in media_graph_walk_start()
355 "begin graph walk at '%s'\n", entity->name); in media_graph_walk_start()
361 struct media_entity *entity = stack_top(graph); in media_graph_walk_iter() local
376 dev_dbg(entity->graph_obj.mdev->dev, in media_graph_walk_iter()
378 link->source->entity->name, link->source->index, in media_graph_walk_iter()
379 link->sink->entity->name, link->sink->index); in media_graph_walk_iter()
384 next = media_entity_other(entity, link); in media_graph_walk_iter()
389 dev_dbg(entity->graph_obj.mdev->dev, in media_graph_walk_iter()
398 dev_dbg(entity->graph_obj.mdev->dev, "walk: pushing '%s' on stack\n", in media_graph_walk_iter()
400 lockdep_assert_held(&entity->graph_obj.mdev->graph_mutex); in media_graph_walk_iter()
405 struct media_entity *entity; in media_graph_walk_next() local
418 entity = stack_pop(graph); in media_graph_walk_next()
419 dev_dbg(entity->graph_obj.mdev->dev, in media_graph_walk_next()
420 "walk: returning entity '%s'\n", entity->name); in media_graph_walk_next()
422 return entity; in media_graph_walk_next()
527 entry->links = pad->entity->links.next; in media_pipeline_walk_push()
531 walk->stack.top, pad->entity->name, pad->index); in media_pipeline_walk_push()
550 if (entry->links->next == &entry->pad->entity->links) { in media_pipeline_walk_pop()
585 pad->entity->name, pad->index); in media_pipeline_add_pad()
601 pad->entity->name, pad->index); in media_pipeline_add_pad()
630 link->source->entity->name, link->source->index, in media_pipeline_explore_next_link()
631 link->sink->entity->name, link->sink->index); in media_pipeline_explore_next_link()
634 if (link->source->entity == origin->entity) { in media_pipeline_explore_next_link()
647 !media_entity_has_pad_interdep(origin->entity, origin->index, in media_pipeline_explore_next_link()
686 local->entity->name); in media_pipeline_explore_next_link()
688 media_entity_for_each_pad(origin->entity, local) { in media_pipeline_explore_next_link()
695 !media_entity_has_pad_interdep(origin->entity, origin->index, in media_pipeline_explore_next_link()
756 ppad->pad->entity->name, ppad->pad->index); in media_pipeline_populate()
813 struct media_entity *entity = pad->entity; in __media_pipeline_start() local
817 dev_dbg(mdev->dev, "Validating pad '%s':%u\n", pad->entity->name, in __media_pipeline_start()
826 pad->entity->name, pad->index); in __media_pipeline_start()
836 for_each_media_entity_data_link(entity, link) { in __media_pipeline_start()
855 if (!entity->ops || !entity->ops->link_validate) in __media_pipeline_start()
858 ret = entity->ops->link_validate(link); in __media_pipeline_start()
862 link->source->entity->name, in __media_pipeline_start()
864 link->sink->entity->name, in __media_pipeline_start()
871 link->source->entity->name, in __media_pipeline_start()
873 link->sink->entity->name, in __media_pipeline_start()
885 pad->entity->name, pad->index); in __media_pipeline_start()
1035 struct media_entity *entity) in __media_pipeline_entity_iter_next() argument
1037 if (!entity) in __media_pipeline_entity_iter_next()
1042 struct media_entity *entity; in __media_pipeline_entity_iter_next() local
1045 entity = ppad->pad->entity; in __media_pipeline_entity_iter_next()
1048 if (!media_entity_enum_test_and_set(&iter->ent_enum, entity)) in __media_pipeline_entity_iter_next()
1049 return entity; in __media_pipeline_entity_iter_next()
1073 static void __media_entity_remove_link(struct media_entity *entity, in __media_entity_remove_link() argument
1084 if (link->source->entity == entity) in __media_entity_remove_link()
1085 remote = link->sink->entity; in __media_entity_remove_link()
1087 remote = link->source->entity; in __media_entity_remove_link()
1093 if (link->source->entity == entity) in __media_entity_remove_link()
1111 int media_get_pad_index(struct media_entity *entity, u32 pad_type, in media_get_pad_index() argument
1116 if (!entity) in media_get_pad_index()
1119 for (i = 0; i < entity->num_pads; i++) { in media_get_pad_index()
1120 if ((entity->pads[i].flags & in media_get_pad_index()
1124 if (entity->pads[i].sig_type == sig_type) in media_get_pad_index()
1206 struct media_entity *entity; in media_create_pad_links() local
1243 media_device_for_each_entity(entity, mdev) { in media_create_pad_links()
1244 if (entity->function != function) in media_create_pad_links()
1249 entity, sink_pad, flags); in media_create_pad_links()
1251 ret = media_create_pad_link(entity, source_pad, in media_create_pad_links()
1261 void __media_entity_remove_links(struct media_entity *entity) in __media_entity_remove_links() argument
1265 list_for_each_entry_safe(link, tmp, &entity->links, list) in __media_entity_remove_links()
1266 __media_entity_remove_link(entity, link); in __media_entity_remove_links()
1268 entity->num_links = 0; in __media_entity_remove_links()
1269 entity->num_backlinks = 0; in __media_entity_remove_links()
1273 void media_entity_remove_links(struct media_entity *entity) in media_entity_remove_links() argument
1275 struct media_device *mdev = entity->graph_obj.mdev; in media_entity_remove_links()
1282 __media_entity_remove_links(entity); in media_entity_remove_links()
1292 ret = media_entity_call(link->source->entity, link_setup, in __media_entity_setup_link_notify()
1297 ret = media_entity_call(link->sink->entity, link_setup, in __media_entity_setup_link_notify()
1300 media_entity_call(link->source->entity, link_setup, in __media_entity_setup_link_notify()
1374 for_each_media_entity_data_link(source->entity, link) { in media_entity_find_link()
1375 if (link->source->entity == source->entity && in media_entity_find_link()
1377 link->sink->entity == sink->entity && in media_entity_find_link()
1390 for_each_media_entity_data_link(pad->entity, link) { in media_pad_remote_pad_first()
1407 media_entity_remote_pad_unique(const struct media_entity *entity, in media_entity_remote_pad_unique() argument
1413 list_for_each_entry(link, &entity->links, list) { in media_entity_remote_pad_unique()
1430 if (local_pad->entity == entity) { in media_entity_remote_pad_unique()
1450 list_for_each_entry(link, &pad->entity->links, list) { in media_pad_remote_pad_unique()
1476 int media_entity_get_fwnode_pad(struct media_entity *entity, in media_entity_get_fwnode_pad() argument
1484 if (!entity->ops || !entity->ops->get_fwnode_pad) { in media_entity_get_fwnode_pad()
1485 for (i = 0; i < entity->num_pads; i++) { in media_entity_get_fwnode_pad()
1486 if (entity->pads[i].flags & direction_flags) in media_entity_get_fwnode_pad()
1497 ret = entity->ops->get_fwnode_pad(entity, &endpoint); in media_entity_get_fwnode_pad()
1501 if (ret >= entity->num_pads) in media_entity_get_fwnode_pad()
1504 if (!(entity->pads[ret].flags & direction_flags)) in media_entity_get_fwnode_pad()
1511 struct media_pipeline *media_entity_pipeline(struct media_entity *entity) in media_entity_pipeline() argument
1515 media_entity_for_each_pad(entity, pad) { in media_entity_pipeline()
1572 struct media_link *media_create_intf_link(struct media_entity *entity, in media_create_intf_link() argument
1583 link->entity = entity; in media_create_intf_link()
1662 struct media_link *__media_entity_next_link(struct media_entity *entity, in __media_entity_next_link() argument
1667 : list_first_entry(&entity->links, typeof(*link), list); in __media_entity_next_link()
1669 list_for_each_entry_from(link, &entity->links, list) in __media_entity_next_link()