[PATCH 2/2] mem2mem_testdev: Code cleanup

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Vaibhav Hiremath <hvaibhav@xxxxxx>


Signed-off-by: Vaibhav Hiremath <hvaibhav@xxxxxx>
---
 drivers/media/video/mem2mem_testdev.c |   58 ++++++++++++++------------------
 1 files changed, 25 insertions(+), 33 deletions(-)

diff --git a/drivers/media/video/mem2mem_testdev.c b/drivers/media/video/mem2mem_testdev.c
index 05630e3..1f35b7e 100644
--- a/drivers/media/video/mem2mem_testdev.c
+++ b/drivers/media/video/mem2mem_testdev.c
@@ -98,11 +98,10 @@ static struct m2mtest_fmt formats[] = {
 };
 
 /* Per-queue, driver-specific private data */
-struct m2mtest_q_data
-{
-	unsigned int		width;
-	unsigned int		height;
-	unsigned int		sizeimage;
+struct m2mtest_q_data {
+	u32			width;
+	u32			height;
+	u32			sizeimage;
 	struct m2mtest_fmt	*fmt;
 };
 
@@ -123,11 +122,10 @@ static struct m2mtest_q_data *get_q_data(enum v4l2_buf_type type)
 		return &q_data[V4L2_M2M_DST];
 	default:
 		BUG();
-		return NULL;
 	}
+	return NULL;
 }
 
-
 #define V4L2_CID_TRANS_TIME_MSEC	V4L2_CID_PRIVATE_BASE
 #define V4L2_CID_TRANS_NUM_BUFS		(V4L2_CID_PRIVATE_BASE + 1)
 
@@ -158,7 +156,7 @@ static struct v4l2_queryctrl m2mtest_ctrls[] = {
 static struct m2mtest_fmt *find_format(struct v4l2_format *f)
 {
 	struct m2mtest_fmt *fmt;
-	unsigned int k;
+	u32 k;
 
 	for (k = 0; k < NUM_FORMATS; k++) {
 		fmt = &formats[k];
@@ -237,12 +235,12 @@ static int device_process(struct m2mtest_ctx *ctx,
 	if (!p_in || !p_out) {
 		v4l2_err(&dev->v4l2_dev,
 			 "Acquiring kernel pointers to buffers failed\n");
-		return 1;
+		return -EFAULT;
 	}
 
 	if (in_buf->vb.size < out_buf->vb.size) {
 		v4l2_err(&dev->v4l2_dev, "Output buffer is too small\n");
-		return 1;
+		return -EINVAL;
 	}
 
 	tile_w = (in_buf->vb.width * (q_data[V4L2_M2M_DST].fmt->depth >> 3))
@@ -361,8 +359,6 @@ static void device_isr(unsigned long priv)
 		spin_unlock_irqrestore(&m2mtest_dev->irqlock, flags);
 		device_run(curr_ctx);
 	}
-
-	return;
 }
 
 
@@ -384,10 +380,7 @@ static int vidioc_querycap(struct file *file, void *priv,
 
 static int enum_fmt(struct v4l2_fmtdesc *f, u32 type)
 {
-	int i, num;
-	struct m2mtest_fmt *fmt;
-
-	num = 0;
+	int i, num = 0;
 
 	for (i = 0; i < NUM_FORMATS; ++i) {
 		if (formats[i].types & type) {
@@ -402,9 +395,9 @@ static int enum_fmt(struct v4l2_fmtdesc *f, u32 type)
 
 	if (i < NUM_FORMATS) {
 		/* Format found */
-		fmt = &formats[i];
-		strncpy(f->description, fmt->name, sizeof(f->description) - 1);
-		f->pixelformat = fmt->fourcc;
+		strncpy(f->description, formats[i].name,
+				sizeof(f->description) - 1);
+		f->pixelformat = formats[i].fourcc;
 		return 0;
 	}
 
@@ -430,6 +423,9 @@ static int vidioc_g_fmt(struct m2mtest_ctx *ctx, struct v4l2_format *f)
 	struct m2mtest_q_data *q_data;
 
 	vq = v4l2_m2m_get_vq(ctx->m2m_ctx, f->type);
+	if (!vq)
+		return -EINVAL;
+
 	q_data = get_q_data(f->type);
 
 	f->fmt.pix.width	= q_data->width;
@@ -524,9 +520,10 @@ static int vidioc_s_fmt(struct m2mtest_ctx *ctx, struct v4l2_format *f)
 {
 	struct m2mtest_q_data *q_data;
 	struct videobuf_queue *vq;
-	int ret = 0;
 
 	vq = v4l2_m2m_get_vq(ctx->m2m_ctx, f->type);
+	if (!vq)
+		return -EINVAL;
 	q_data = get_q_data(f->type);
 	if (!q_data)
 		return -EINVAL;
@@ -535,8 +532,8 @@ static int vidioc_s_fmt(struct m2mtest_ctx *ctx, struct v4l2_format *f)
 
 	if (videobuf_queue_is_busy(vq)) {
 		v4l2_err(&ctx->dev->v4l2_dev, "%s queue busy\n", __func__);
-		ret = -EBUSY;
-		goto out;
+		mutex_unlock(&vq->vb_lock);
+		return -EBUSY;
 	}
 
 	q_data->fmt		= find_format(f);
@@ -550,9 +547,7 @@ static int vidioc_s_fmt(struct m2mtest_ctx *ctx, struct v4l2_format *f)
 		"Setting format for type %d, wxh: %dx%d, fmt: %d\n",
 		f->type, q_data->width, q_data->height, q_data->fmt->fourcc);
 
-out:
-	mutex_unlock(&vq->vb_lock);
-	return ret;
+	return 0;
 }
 
 static int vidioc_s_fmt_vid_cap(struct file *file, void *priv,
@@ -857,13 +852,9 @@ static int m2mtest_open(struct file *file)
 	struct m2mtest_dev *dev = video_drvdata(file);
 	struct m2mtest_ctx *ctx = NULL;
 
-	atomic_inc(&dev->num_inst);
-
 	ctx = kzalloc(sizeof *ctx, GFP_KERNEL);
-	if (!ctx) {
-		atomic_dec(&dev->num_inst);
+	if (!ctx)
 		return -ENOMEM;
-	}
 
 	file->private_data = ctx;
 	ctx->dev = dev;
@@ -872,13 +863,13 @@ static int m2mtest_open(struct file *file)
 	ctx->num_processed = 0;
 
 	ctx->m2m_ctx = v4l2_m2m_ctx_init(ctx, dev->m2m_dev, queue_init);
-
 	if (IS_ERR(ctx->m2m_ctx)) {
 		kfree(ctx);
-		atomic_dec(&dev->num_inst);
 		return PTR_ERR(ctx->m2m_ctx);
 	}
 
+	atomic_inc(&dev->num_inst);
+
 	dprintk(dev, "Created instance %p, m2m_ctx: %p\n", ctx, ctx->m2m_ctx);
 
 	return 0;
@@ -959,6 +950,7 @@ static int m2mtest_probe(struct platform_device *pdev)
 	vfd = video_device_alloc();
 	if (!vfd) {
 		v4l2_err(&dev->v4l2_dev, "Failed to allocate video device\n");
+		ret = -ENOMEM;
 		goto unreg_dev;
 	}
 
@@ -1042,7 +1034,7 @@ static int __init m2mtest_init(void)
 	if (ret)
 		platform_device_unregister(&m2mtest_pdev);
 
-	return 0;
+	return ret;
 }
 
 module_init(m2mtest_init);
-- 
1.6.2.4

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux