summaryrefslogtreecommitdiffstats
path: root/drivers/staging/media/ipu3/ipu3.c
diff options
context:
space:
mode:
authorUmang Jain <umang.jain@ideasonboard.com>2022-03-18 12:18:26 +0000
committerMauro Carvalho Chehab <mchehab@kernel.org>2022-04-24 08:13:57 +0100
commitdbdc7237ec71316e99c1905264cc00b88e277e57 (patch)
tree749c93a7ec6853fdc2fa890038eaf80253e44b23 /drivers/staging/media/ipu3/ipu3.c
parent1ad037645a81a0b446f9ea5a53e2d3abad33dc56 (diff)
downloadlinux-stable-dbdc7237ec71316e99c1905264cc00b88e277e57.tar.gz
linux-stable-dbdc7237ec71316e99c1905264cc00b88e277e57.tar.bz2
linux-stable-dbdc7237ec71316e99c1905264cc00b88e277e57.zip
media: staging/intel-ipu3: Cleanup dummy buffers via helper
Use an existing helper imgu_video_nodes_exit() on imgu-video-node initialization failure path to cleanup dummy buffers. Signed-off-by: Umang Jain <umang.jain@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Diffstat (limited to 'drivers/staging/media/ipu3/ipu3.c')
-rw-r--r--drivers/staging/media/ipu3/ipu3.c25
1 files changed, 11 insertions, 14 deletions
diff --git a/drivers/staging/media/ipu3/ipu3.c b/drivers/staging/media/ipu3/ipu3.c
index 8e1e9e46e604..0c453b37f8c4 100644
--- a/drivers/staging/media/ipu3/ipu3.c
+++ b/drivers/staging/media/ipu3/ipu3.c
@@ -440,6 +440,16 @@ fail_start_streaming:
return r;
}
+static void imgu_video_nodes_exit(struct imgu_device *imgu)
+{
+ int i;
+
+ for (i = 0; i < IMGU_MAX_PIPE_NUM; i++)
+ imgu_dummybufs_cleanup(imgu, i);
+
+ imgu_v4l2_unregister(imgu);
+}
+
static int imgu_video_nodes_init(struct imgu_device *imgu)
{
struct v4l2_pix_format_mplane *fmts[IPU3_CSS_QUEUES] = { NULL };
@@ -489,24 +499,11 @@ static int imgu_video_nodes_init(struct imgu_device *imgu)
return 0;
out_cleanup:
- for (j = 0; j < IMGU_MAX_PIPE_NUM; j++)
- imgu_dummybufs_cleanup(imgu, j);
-
- imgu_v4l2_unregister(imgu);
+ imgu_video_nodes_exit(imgu);
return r;
}
-static void imgu_video_nodes_exit(struct imgu_device *imgu)
-{
- int i;
-
- for (i = 0; i < IMGU_MAX_PIPE_NUM; i++)
- imgu_dummybufs_cleanup(imgu, i);
-
- imgu_v4l2_unregister(imgu);
-}
-
/**************** PCI interface ****************/
static irqreturn_t imgu_isr_threaded(int irq, void *imgu_ptr)