media_create_pad_links(9)
πΈ media_create_pad_links(9) πΈ
okay bestie, welcome to the Kernel API Manual corner where media_create_pad_links is the main character. This page is about making links between media entities, and it's lowkey a whole vibe for 1:n, n:1, and crossbar n:n setups. π
β¨ NAME β¨
media_create_pad_links β creates a link between two entities. Fr fr, that's the whole job. π«Ά
π SYNOPSIS π
int media_create_pad_links (const struct media_device *mdev , const u32
source_function , struct media_entity *source , const u16 source_pad ,
const u32 sink_function , struct media_entity *sink , const u16 sink_pad
, u32 flags , const bool allow_both_undefined );
π ARGUMENTS π
mdevβ pointer to themedia_devicethat contains the object. πsource_functionβ function of the source entities. Used only ifsourceisNULL. β¨sourceβ pointer tomedia_entityof the source pad. IfNULL, it will use all entities that matches thesink_function. π«Άsource_padβ number of the source pad in the pads array. π₯sink_functionβ function of the sink entities. Used only ifsinkisNULL. β¨sinkβ pointer tomedia_entityof the sink pad. IfNULL, it will use all entities that matches thesink_function. π«Άsink_padβ number of the sink pad in the pads array. π₯flagsβ link flags, as defined ininclude/uapi/linux/media.h. πallow_both_undefinedβ iftrue, then bothsourceandsinkcan beNULL. In such case, it will create a crossbar between all entities that matchessource_functionto all entities that matchessink_function. Iffalse, it will return0and won't create any link if bothsourceandsinkareNULL. π¨
π¦ DESCRIPTION π¦
Valid values for flags are giving:
MEDIA_LNK_FL_ENABLEDβ indicates that the link is enabled and can be used to transfer media data. If multiple links are created and this flag is passed as an argument, only the first created link will have this flag. βMEDIA_LNK_FL_IMMUTABLEβ indicates that the link enabled state can't be modified at runtime. IfMEDIA_LNK_FL_IMMUTABLEis set, thenMEDIA_LNK_FL_ENABLEDmust also be set since an immutable link is always enabled. π
It is common for some devices to have multiple source and/or sink entities of the same type that should be linked. While media_create_pad_link creates link by link, this function is meant to allow 1:n, n:1 and even cross-bar (n:n) links. ππ
π¨ NOTE: Before calling this function,media_entity_pads_initandmedia_device_register_entityshould be called previously for the entities to be linked. No skipping, bestie. π«Ά
π SEE ALSO π
The whole squad is here, in original order:
- 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_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_init(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)
mwah π this page came from source/version ./include/media, dated October 2026 β media_create_pad_links(9) out! π«Άβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms