Lines Matching full:pad
29 * @MEDIA_GRAPH_PAD: Identify a media pad
116 * struct media_pipeline_pad - A pad part of a media pipeline
119 * @pipe: The media_pipeline that the pad is part of
120 * @pad: The media pad
122 * This structure associate a pad with a media pipeline. Instances of
130 struct media_pad *pad; member
162 * a pad. In that case, it represents the source pad.
168 * a pad. In that case, it represents the sink pad.
171 * @reverse: Pointer to the link for the reverse direction of a pad to pad
195 * enum media_pad_signal_type - type of the signal inside a media pad
199 * uniquely identified by the pad number.
201 * The pad contains an analog signal. It can be Radio Frequency,
223 * struct media_pad - A media pad graph object.
226 * @entity: Entity this pad belongs to
227 * @index: Pad index in the entity pads array, numbered from 0 to n
228 * @sig_type: Type of the signal inside a media pad
229 * @flags: Pad flags, as defined in
232 * @pipe: Pipeline this pad belongs to. Use media_entity_pipeline() to
251 * @get_fwnode_pad: Return the pad number based on a fwnode endpoint or
253 * to map a fwnode to a media pad number. Optional.
263 * means that the other pad will become "locked" and
381 * @iter: The iterator pad
679 * function calls are used. However, if the object (entity, link, pad,
716 * Drivers must set the direction of every pad in the pads array before calling
741 * media_get_pad_index() - retrieves a pad index from an entity
744 * @pad_type: the type of the pad, one of MEDIA_PAD_FL_* pad types
745 * @sig_type: type of signal of the pad to be search
747 * This helper function finds the first pad index inside an entity that
752 * On success, return the pad number. If the pad was not found or the media
761 * @source: pointer to &media_entity of the source pad.
762 * @source_pad: number of the source pad in the pads array
763 * @sink: pointer to &media_entity of the sink pad.
764 * @sink_pad: number of the sink pad in the pads array.
773 * When two or more links target a sink pad, only one of them can be
796 * @source: pointer to &media_entity of the source pad. If NULL, it will use
798 * @source_pad: number of the source pad in the pads array
800 * @sink: pointer to &media_entity of the sink pad. If NULL, it will use
802 * @sink_pad: number of the sink pad in the pads array.
899 * enabled link at a sink pad prevents another link at the same pad from
906 * on media_create_pad_link(), for pad to pad links or the same as described
913 * @source: Source pad
914 * @sink: Sink pad
923 * media_pad_remote_pad_first - Find the first pad at the remote end of a link
924 * @pad: Pad at the local end of the link
926 * Search for a remote pad connected to the given pad by iterating over all
927 * links originating or terminating at that pad until an enabled link is found.
929 * Return: returns a pointer to the pad at the remote end of the first found
932 struct media_pad *media_pad_remote_pad_first(const struct media_pad *pad);
935 * media_pad_remote_pad_unique - Find a remote pad connected to a pad
936 * @pad: The pad
938 * Search for and return a remote pad connected to @pad through an enabled
942 * that support a single active source at a time on a given pad.
944 * Return: A pointer to the remote pad, or one of the following error pointers
948 * * -ENOLINK - No connected pad found
950 struct media_pad *media_pad_remote_pad_unique(const struct media_pad *pad);
953 * media_entity_remote_pad_unique - Find a remote pad connected to an entity
955 * @type: The type of pad to find (MEDIA_PAD_FL_SINK or MEDIA_PAD_FL_SOURCE)
957 * Search for and return a remote pad of @type connected to @entity through an
964 * Return: A pointer to the remote pad, or one of the following error pointers
968 * * -ENOLINK - No connected pad found
975 * media_entity_remote_source_pad_unique - Find a remote source pad connected to
979 * Search for and return a remote source pad connected to @entity through an
986 * Return: A pointer to the remote pad, or one of the following error pointers
990 * * -ENOLINK - No connected pad found
999 * media_pad_is_streaming - Test if a pad is part of a streaming pipeline
1000 * @pad: The pad
1002 * Return: True if the pad is part of a pipeline started with the
1005 static inline bool media_pad_is_streaming(const struct media_pad *pad) in media_pad_is_streaming() argument
1007 return pad->pipe; in media_pad_is_streaming()
1019 struct media_pad *pad; in media_entity_is_streaming() local
1021 media_entity_for_each_pad(entity, pad) { in media_entity_is_streaming()
1022 if (media_pad_is_streaming(pad)) in media_entity_is_streaming()
1040 * multiple streams (either on different pads, or on the same pad using
1050 * media_pad_pipeline - Get the media pipeline a pad is part of
1051 * @pad: The pad
1053 * This function returns the media pipeline that a pad has been associated
1057 * Return: The media_pipeline the pad is part of, or NULL if the pad is
1060 struct media_pipeline *media_pad_pipeline(struct media_pad *pad);
1063 * media_entity_get_fwnode_pad - Get pad number from fwnode
1066 * @fwnode: Pointer to the fwnode_handle which should be used to find the pad
1067 * @direction_flags: Expected direction of the pad, as defined in
1071 * This function can be used to resolve the media pad number from
1076 * then this function searches the entity for the first pad that
1079 * Return: returns the pad number on success or a negative error code.
1148 * @pad: Starting pad
1151 * Mark all pads connected to a given pad through enabled links, either
1153 * to every pad in the pipeline and stored in the media_pad pipe field.
1160 __must_check int media_pipeline_start(struct media_pad *pad,
1165 * @pad: Starting pad
1170 __must_check int __media_pipeline_start(struct media_pad *pad,
1175 * @pad: Starting pad
1177 * Mark all pads connected to a given pad through enabled links, either
1185 void media_pipeline_stop(struct media_pad *pad);
1190 * @pad: Starting pad
1194 void __media_pipeline_stop(struct media_pad *pad);
1199 struct media_pad *pad);
1205 * @pad: The iterator pad
1211 #define media_pipeline_for_each_pad(pipe, iter, pad) \ argument
1212 for (pad = __media_pipeline_pad_iter_next((pipe), iter, NULL); \
1213 pad != NULL; \
1214 pad = __media_pipeline_pad_iter_next((pipe), iter, pad))
1268 * @pad: Starting pad
1272 * the pad is already part of a pipeline, or allocate a new pipeline.
1277 __must_check int media_pipeline_alloc_start(struct media_pad *pad);