media: mc: Add num_links flag to media_pad
Subsystems (3)
This is an automatic generated email to let you know that the following patch were queued:
Subject: media: mc: Add num_links flag to media_pad Author: Laurent Pinchart <[email protected]> Date: Mon Jan 15 00:30:02 2024 +0200
Maintain a counter of the links connected to a pad in the media_pad structure. This helps checking if a pad is connected to anything, which will be used in the pipeline building code.
Cc [email protected] # 6.1
Signed-off-by Laurent Pinchart <[email protected]>
Acked-by Sakari Ailus <[email protected]>
Signed-off-by Hans Verkuil <[email protected]>
drivers/media/mc/mc-entity.c | 6 ++++++ include/media/media-entity.h | 2 ++ 2 files changed, 8 insertions(+)
---
drivers/media/mc/mc-entity.c +6 -0
@@ -1038,6 +1038,9 @@ static void __media_entity_remove_link(struct media_entity *entity,/* Remove the reverse links for a data link. */ if ((link->flags &MEDIA_LNK_FL_LINK_TYPE ) ==MEDIA_LNK_FL_DATA_LINK ) { + link->source->num_links--; + link->sink->num_links--; +if (link->source->entity == entity) remote = link->sink->entity;else
@@ -1143,6 +1146,9 @@ media_create_pad_link(struct media_entity *source, u16 source_pad, sink->num_links++; source->num_links++; + link->source->num_links++; + link->sink->num_links++; +return 0 ; }EXPORT_SYMBOL_GPL (media_create_pad_link);
include/media/media-entity.h +2 -0
@@ -225,6 +225,7 @@ enum media_pad_signal_type {* @graph_obj: Embedded structure containing the media object common data * @entity: Entity this pad belongs to * @index: Pad index in the entity pads array, numbered from 0 to n +* @num_links: Number of links connected to this pad * @sig_type: Type of the signal inside a media pad * @flags: Pad flags, as defined in * :ref:`include/uapi/linux/media.h <media_header>`
@@ -236,6 +237,7 @@ struct media_pad {struct media_gobj graph_obj;/* must be first field in struct */ struct media_entity *entity;u16 index; +u16 num_links;enum media_pad_signal_type sig_type;unsigned long flags;