media: imx: imx7-media-csi: Don't lock access to is_csi2
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Mon, 15 Feb 2021 04:27:03 +0000 (05:27 +0100)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Thu, 11 Mar 2021 10:59:50 +0000 (11:59 +0100)
The is_csi2 field can't be accessed concurrently by
imx7_csi_pad_link_validate() and imx7_csi_configure(), as the latter is
called from imx7_csi_s_stream(), which is called after link validation.
Drop the lock.

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>
drivers/staging/media/imx/imx7-media-csi.c

index 2a4b69c..dc25b59 100644 (file)
@@ -1001,7 +1001,6 @@ static int imx7_csi_pad_link_validate(struct v4l2_subdev *sd,
        struct imx_media_video_dev *vdev = csi->vdev;
        const struct v4l2_pix_format *out_pix = &vdev->fmt;
        struct media_pad *pad;
-       bool is_csi2;
        int ret;
 
        if (!csi->src_sd)
@@ -1018,7 +1017,7 @@ static int imx7_csi_pad_link_validate(struct v4l2_subdev *sd,
        switch (csi->src_sd->entity.function) {
        case MEDIA_ENT_F_VID_IF_BRIDGE:
                /* The input is the CSI-2 receiver. */
-               is_csi2 = true;
+               csi->is_csi2 = true;
                break;
 
        case MEDIA_ENT_F_VID_MUX:
@@ -1027,7 +1026,7 @@ static int imx7_csi_pad_link_validate(struct v4l2_subdev *sd,
                if (!pad)
                        return -ENODEV;
 
-               is_csi2 = pad->entity->function == MEDIA_ENT_F_VID_IF_BRIDGE;
+               csi->is_csi2 = pad->entity->function == MEDIA_ENT_F_VID_IF_BRIDGE;
                break;
 
        default:
@@ -1035,14 +1034,10 @@ static int imx7_csi_pad_link_validate(struct v4l2_subdev *sd,
                 * The input is an external entity, it must use the parallel
                 * bus.
                 */
-               is_csi2 = false;
+               csi->is_csi2 = false;
                break;
        }
 
-       mutex_lock(&csi->lock);
-       csi->is_csi2 = is_csi2;
-       mutex_unlock(&csi->lock);
-
        /* Validate the sink link, ensure the pixel format is supported. */
        switch (out_pix->pixelformat) {
        case V4L2_PIX_FMT_UYVY: