media: atomisp: Remove clearing of ISP crop / compose rectangles on file release
authorHans de Goede <hdegoede@redhat.com>
Sun, 14 Apr 2024 14:40:09 +0000 (15:40 +0100)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Fri, 26 Apr 2024 10:03:32 +0000 (11:03 +0100)
There is no need to clear the ISP sink-pad crop and source-pad
compose rectangles  on release of the /dev/video# file.

Both will be reset by atomisp_set_fmt() which is guaranteed to
get called by atomisp_queue_setup() (if not called already)
before another stream starts and thus before these selections
are used again.

Also the file injection support the comment talks about has long
been dropped from the driver.

Reviewed-by: Andy Shevchenko <andy@kernel.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/staging/media/atomisp/pci/atomisp_fops.c

index 0d0c1649eaadc70d0b3549963dbd534f9aff3d49..50c4123ba006648db38c1e310bed4697d49615e0 100644 (file)
@@ -539,7 +539,6 @@ static int atomisp_release(struct file *file)
        struct atomisp_video_pipe *pipe = atomisp_to_video_pipe(vdev);
        struct atomisp_sub_device *asd = pipe->asd;
        struct v4l2_subdev_fh fh;
-       struct v4l2_rect clear_compose = {0};
 
        v4l2_fh_init(&fh.vfh, vdev);
 
@@ -552,21 +551,6 @@ static int atomisp_release(struct file *file)
 
        pipe->users--;
 
-       /*
-        * A little trick here:
-        * file injection input resolution is recorded in the sink pad,
-        * therefore can not be cleared when releaseing one device node.
-        * The sink pad setting can only be cleared when all device nodes
-        * get released.
-        */
-       {
-               struct v4l2_mbus_framefmt isp_sink_fmt = { 0 };
-
-               atomisp_subdev_set_ffmt(&asd->subdev, fh.state,
-                                       V4L2_SUBDEV_FORMAT_ACTIVE,
-                                       ATOMISP_SUBDEV_PAD_SINK, &isp_sink_fmt);
-       }
-
        atomisp_css_free_stat_buffers(asd);
        atomisp_free_internal_buffers(asd);
 
@@ -577,11 +561,6 @@ static int atomisp_release(struct file *file)
        if (pm_runtime_put_sync(vdev->v4l2_dev->dev) < 0)
                dev_err(isp->dev, "Failed to power off device\n");
 
-       atomisp_subdev_set_selection(&asd->subdev, fh.state,
-                                    V4L2_SUBDEV_FORMAT_ACTIVE,
-                                    ATOMISP_SUBDEV_PAD_SOURCE,
-                                    V4L2_SEL_TGT_COMPOSE, 0,
-                                    &clear_compose);
        mutex_unlock(&isp->mutex);
        return 0;
 }