From: Laurent Pinchart Date: Mon, 15 Feb 2021 04:27:33 +0000 (+0100) Subject: media: imx: imx7_mipi_csis: Move link setup check out of locked section X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=bef63005e3ad6d8be6f4fd0d7e6e6a83a7b4a351;p=linux.git media: imx: imx7_mipi_csis: Move link setup check out of locked section 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 Reviewed-by: Rui Miguel Silva Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/staging/media/imx/imx7-mipi-csis.c b/drivers/staging/media/imx/imx7-mipi-csis.c index a5f00983bd923..333ab3966b5b9 100644 --- a/drivers/staging/media/imx/imx7-mipi-csis.c +++ b/drivers/staging/media/imx/imx7-mipi-csis.c @@ -668,20 +668,23 @@ static int mipi_csis_link_setup(struct media_entity *entity, 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: