Checking if the link setup operation is called for the sink or source
pad doesn't require any locking. Move it out of the section protected by
the mutex.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Rui Miguel Silva <rmfrfs@gmail.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
dev_dbg(state->dev, "link setup %s -> %s", remote_pad->entity->name,
local_pad->entity->name);
+ /* We only care about the link to the source. */
+ if (!(local_pad->flags & MEDIA_PAD_FL_SINK))
+ return 0;
+
remote_sd = media_entity_to_v4l2_subdev(remote_pad->entity);
mutex_lock(&state->lock);
- if (local_pad->flags & MEDIA_PAD_FL_SINK) {
- if (flags & MEDIA_LNK_FL_ENABLED) {
- if (state->src_sd) {
- ret = -EBUSY;
- goto out;
- }
- state->src_sd = remote_sd;
- } else {
- state->src_sd = NULL;
+ if (flags & MEDIA_LNK_FL_ENABLED) {
+ if (state->src_sd) {
+ ret = -EBUSY;
+ goto out;
}
+
+ state->src_sd = remote_sd;
+ } else {
+ state->src_sd = NULL;
}
out: