media_graph_walk_init(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

okay bestie, welcome to the media_graph_walk_init(9) page from the Kernel API Manual β€” yes, the manual name is folded in right here like a little name tag 🫢✨

🌸 NAME 🌸

media_graph_walk_init β€” allocate resources used by graph walk. That's the whole assignment, and it ate πŸ’…

✨ SYNOPSIS ✨

here's the signature, copy it exactly, no improvising:

int media_graph_walk_init (struct media_graph *graph , struct
       media_device *mdev );

πŸ’… ARGUMENTS πŸ’…

two args, both important, look:

  • graph β€” the media graph structure that will be used to walk the graph. it's literally the graph you're strolling through 🌈
  • mdev β€” pointer to the media_device that contains the object. the container, the mothership, the one holding the thing 🫢

πŸŽ€ DESCRIPTION πŸŽ€

okay so first thing, and I'm saying it loud for the people in the back: this function is deprecated, bestie. use media_pipeline_for_each_pad instead. periodt πŸ’…

the caller is required to hold the media_device graph_mutex during the graph walk until the graph state is released. no letting go early, okay? that lock stays held for the whole walk until the graph state is released πŸ”’

Returns zero on success or a negative error code otherwise. so zero = slay, negative = not slay 😭

πŸ¦‹ SEE ALSO πŸ¦‹

bestie, this see-also section is huge and I am obsessed: Kernel file ./include/media/media-entity.h, enum media_gobj_type(9), struct media_gobj(9), struct media_entity_enum(9), struct media_graph(9), struct media_pipeline(9), struct media_pipeline_pad(9), struct media_pipeline_pad_iter(9), struct media_pipeline_entity_iter(9), struct media_link(9), enum media_pad_signal_type(9), struct media_pad(9), struct media_entity_operations(9), enum media_entity_type(9), struct media_entity(9), media_entity_for_each_pad(9), struct media_interface(9), struct media_intf_devnode(9), media_entity_id(9), media_type(9), media_id(9), media_gobj_gen_id(9), is_media_entity_v4l2_video_device(9), is_media_entity_v4l2_subdev(9), media_entity_enum_init(9), media_entity_enum_cleanup(9), media_entity_enum_zero(9), media_entity_enum_set(9), media_entity_enum_clear(9), media_entity_enum_test(9), media_entity_enum_test_and_set(9), media_entity_enum_empty(9), media_entity_enum_intersects(9), gobj_to_entity(9), gobj_to_pad(9), gobj_to_link(9), gobj_to_intf(9), intf_to_devnode(9), media_gobj_create(9), media_gobj_destroy(9), media_entity_pads_init(9), media_entity_cleanup(9), media_get_pad_index(9), media_create_pad_link(9), media_create_pad_links(9), media_entity_remove_links(9), __media_entity_setup_link(9), media_entity_setup_link(9), media_entity_find_link(9), media_pad_remote_pad_first(9), media_pad_remote_pad_unique(9), media_entity_remote_pad_unique(9), media_entity_remote_source_pad_unique(9), media_pad_is_streaming(9), media_entity_is_streaming(9), media_entity_pipeline(9), media_pad_pipeline(9), media_entity_get_fwnode_pad(9), media_graph_walk_cleanup(9), media_graph_walk_start(9), media_graph_walk_next(9), media_pipeline_start(9), __media_pipeline_start(9), media_pipeline_stop(9), __media_pipeline_stop(9), media_pipeline_for_each_pad(9), media_pipeline_entity_iter_init(9), media_pipeline_entity_iter_cleanup(9), media_pipeline_for_each_entity(9), media_pipeline_alloc_start(9), media_devnode_create(9), media_devnode_remove(9), media_create_intf_link(9), __media_remove_intf_link(9), media_remove_intf_link(9), __media_remove_intf_links(9), media_remove_intf_links(9), media_entity_call(9), media_create_ancillary_link(9), __media_entity_next_link(9), for_each_media_entity_data_link(9).


xoxo, your kernel bestie πŸ’… β€” sign-off from source/version ./include/media, dated October 2026. now go hold that graph_mutex, mwah 🫢✨

πŸ“¦ where this page comes from