media: mc: Improve the media_entity_has_pad_interdep() documentation

Document the function parameters, the requirements on the pad0 and pad1
arguments, the locking requirements and the return value. Also improve
the documentation of the corresponding .has_pad_interdep() operation,
stating clearly that the operation must be called through the
media_entity_has_pad_interdep() function only.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
This commit is contained in:
Laurent Pinchart 2022-01-14 01:26:26 +01:00 committed by Mauro Carvalho Chehab
parent 7acd650a04
commit 1ec061243e
2 changed files with 17 additions and 2 deletions

View File

@ -226,7 +226,13 @@ EXPORT_SYMBOL_GPL(media_entity_pads_init);
* Graph traversal
*/
/*
/**
* media_entity_has_pad_interdep - Check interdependency between two pads
*
* @entity: The entity
* @pad0: The first pad index
* @pad1: The second pad index
*
* This function checks the interdependency inside the entity between @pad0
* and @pad1. If two pads are interdependent they are part of the same pipeline
* and enabling one of the pads means that the other pad will become "locked"
@ -236,6 +242,13 @@ EXPORT_SYMBOL_GPL(media_entity_pads_init);
* to check the dependency inside the entity between @pad0 and @pad1. If the
* has_pad_interdep operation is not implemented, all pads of the entity are
* considered to be interdependent.
*
* One of @pad0 and @pad1 must be a sink pad and the other one a source pad.
* The function returns false if both pads are sinks or sources.
*
* The caller must hold entity->graph_obj.mdev->mutex.
*
* Return: true if the pads are connected internally and false otherwise.
*/
static bool media_entity_has_pad_interdep(struct media_entity *entity,
unsigned int pad0, unsigned int pad1)

View File

@ -242,7 +242,9 @@ struct media_pad {
* part of the same pipeline and enabling one of the pads
* means that the other pad will become "locked" and
* doesn't allow configuration changes. pad0 and pad1 are
* guaranteed to not both be sinks or sources.
* guaranteed to not both be sinks or sources. Never call
* the .has_pad_interdep() operation directly, always use
* media_entity_has_pad_interdep().
* Optional: If the operation isn't implemented all pads
* will be considered as interdependent.
*