commit: http://blackfin.uclinux.org/git/?p=linux-kernel;a=commitdiff;h=25abdc3f216c935ae07d883a5bdfc8748b1c20a8
branch: http://blackfin.uclinux.org/git/?p=linux-kernel;a=shortlog;h=refs/heads/trunk

Signed-off-by: Scott Jiang <[email protected]>
---
 drivers/media/video/blackfin/bfin_capture.c |  165 +++++++++++++--------------
 drivers/media/video/blackfin/ppi.c          |   15 +--
 include/media/blackfin/ppi.h                |    4 +-
 3 files changed, 87 insertions(+), 97 deletions(-)

diff --git a/drivers/media/video/blackfin/bfin_capture.c b/drivers/media/video/blackfin/bfin_capture.c
index 24f89f2..b65e997 100644
--- a/drivers/media/video/blackfin/bfin_capture.c
+++ b/drivers/media/video/blackfin/bfin_capture.c
@@ -17,31 +17,26 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/io.h>
+#include <linux/completion.h>
 #include <linux/delay.h>
 #include <linux/errno.h>
 #include <linux/fs.h>
+#include <linux/i2c.h>
+#include <linux/init.h>
 #include <linux/interrupt.h>
-#include <linux/completion.h>
+#include <linux/io.h>
 #include <linux/mm.h>
-#include <linux/moduleparam.h>
-#include <linux/time.h>
-#include <linux/version.h>
-#include <linux/device.h>
+#include <linux/module.h>
 #include <linux/platform_device.h>
-#include <linux/clk.h>
-#include <linux/sched.h>
 #include <linux/slab.h>
+#include <linux/time.h>
+#include <linux/types.h>
 
+#include <media/v4l2-chip-ident.h>
 #include <media/v4l2-common.h>
-#include <media/v4l2-ioctl.h>
 #include <media/v4l2-device.h>
+#include <media/v4l2-ioctl.h>
 #include <media/videobuf2-dma-contig.h>
-#include <media/v4l2-chip-ident.h>
 
 #include <asm/dma.h>
 
@@ -69,7 +64,7 @@ struct bcap_device {
 	struct video_device *video_dev;
 	/* sub device instance */
 	struct v4l2_subdev *sd;
-	/* caputre config */
+	/* capture config */
 	struct bfin_capture_config *cfg;
 	/* ppi interface */
 	struct ppi_if *ppi;
@@ -98,18 +93,18 @@ struct bcap_device {
 	/* used to wait ppi to complete one transfer */
 	struct completion comp;
 	/* number of users performing IO */
-	u32 io_usrs;
+	unsigned int io_usrs;
 	/* number of open instances of the device */
-	u32 usrs;
+	unsigned int usrs;
 	/* indicate whether streaming has started */
-	u8 started;
+	bool started;
 };
 
 struct bcap_fh {
 	struct v4l2_fh fh;
 	struct bcap_device *bcap_dev;
 	/* indicates whether this file handle is doing IO */
-	u8 io_allowed;
+	bool io_allowed;
 };
 
 static const struct bcap_format bcap_formats[] = {
@@ -178,7 +173,7 @@ static int bcap_open(struct file *file)
 	v4l2_fh_add(&bcap_fh->fh);
 	bcap_fh->bcap_dev = bcap_dev;
 	bcap_dev->usrs++;
-	bcap_fh->io_allowed = 0;
+	bcap_fh->io_allowed = false;
 	return 0;
 }
 
@@ -355,23 +350,24 @@ static int bcap_stop_streaming(struct vb2_queue *vq)
 	struct ppi_if *ppi = bcap_dev->ppi;
 	int ret;
 
-	if (bcap_dev->started) {
-		bcap_dev->started = 0;
-		wait_for_completion(&bcap_dev->comp);
-		ppi->ops->stop(ppi);
-		ppi->ops->detach_irq(ppi);
-		ret = v4l2_subdev_call(bcap_dev->sd, video, s_stream, 0);
-		if (ret && (ret != -ENOIOCTLCMD))
-			v4l2_err(&bcap_dev->v4l2_dev,
-					"stream off failed in subdev\n");
+	if (!bcap_dev->started)
+		return 0;
 
-		/* release all active buffers */
-		while (!list_empty(&bcap_dev->dma_queue)) {
-			bcap_dev->next_frm = list_entry(bcap_dev->dma_queue.next,
+	bcap_dev->started = false;
+	wait_for_completion(&bcap_dev->comp);
+	ppi->ops->stop(ppi);
+	ppi->ops->detach_irq(ppi);
+	ret = v4l2_subdev_call(bcap_dev->sd, video, s_stream, 0);
+	if (ret && (ret != -ENOIOCTLCMD))
+		v4l2_err(&bcap_dev->v4l2_dev,
+				"stream off failed in subdev\n");
+
+	/* release all active buffers */
+	while (!list_empty(&bcap_dev->dma_queue)) {
+		bcap_dev->next_frm = list_entry(bcap_dev->dma_queue.next,
 						struct bcap_buffer, list);
-			list_del(&bcap_dev->next_frm->list);
-			vb2_buffer_done(&bcap_dev->next_frm->vb, VB2_BUF_STATE_ERROR);
-		}
+		list_del(&bcap_dev->next_frm->list);
+		vb2_buffer_done(&bcap_dev->next_frm->vb, VB2_BUF_STATE_ERROR);
 	}
 	return 0;
 }
@@ -400,7 +396,7 @@ static int bcap_reqbufs(struct file *file, void *priv,
 		return -EBUSY;
 	}
 
-	bcap_fh->io_allowed = 1;
+	bcap_fh->io_allowed = true;
 	bcap_dev->io_usrs = 1;
 
 	return vb2_reqbufs(&bcap_dev->buffer_queue, req_buf);
@@ -447,7 +443,7 @@ static irqreturn_t bcap_isr(int irq, void *dev_id)
 	struct bcap_device *bcap_dev = ppi->priv;
 	struct timeval timevalue;
 	struct vb2_buffer *vb = &bcap_dev->cur_frm->vb;
-	dma_addr_t *addr;
+	dma_addr_t addr;
 
 	spin_lock(&bcap_dev->lock);
 
@@ -460,15 +456,15 @@ static irqreturn_t bcap_isr(int irq, void *dev_id)
 
 	ppi->ops->stop(ppi);
 
-	if (!bcap_dev->started)
+	if (!bcap_dev->started) {
 		complete(&bcap_dev->comp);
-	else {
+	} else {
 		if (!list_empty(&bcap_dev->dma_queue)) {
 			bcap_dev->next_frm = list_entry(bcap_dev->dma_queue.next,
 						struct bcap_buffer, list);
 			list_del(&bcap_dev->next_frm->list);
-			addr = vb2_plane_cookie(&bcap_dev->next_frm->vb, 0);
-			ppi->ops->update_addr(ppi, (unsigned long)(*addr));
+			addr = vb2_dma_contig_plane_paddr(&bcap_dev->next_frm->vb, 0);
+			ppi->ops->update_addr(ppi, (unsigned long)addr);
 		}
 		ppi->ops->start(ppi);
 	}
@@ -484,7 +480,7 @@ static int bcap_streamon(struct file *file, void *priv,
 	struct bcap_device *bcap_dev = video_drvdata(file);
 	struct bcap_fh *fh = file->private_data;
 	struct ppi_if *ppi = bcap_dev->ppi;
-	dma_addr_t *addr;
+	dma_addr_t addr;
 	int ret;
 
 	if (!fh->io_allowed)
@@ -501,7 +497,7 @@ static int bcap_streamon(struct file *file, void *priv,
 	/* if dma queue is empty, return error */
 	if (list_empty(&bcap_dev->dma_queue)) {
 		v4l2_err(&bcap_dev->v4l2_dev, "dma queue is empty\n");
-		ret = -EIO;
+		ret = -EINVAL;
 		goto err;
 	}
 
@@ -511,12 +507,12 @@ static int bcap_streamon(struct file *file, void *priv,
 	bcap_dev->cur_frm = bcap_dev->next_frm;
 	/* remove buffer from the dma queue */
 	list_del(&bcap_dev->cur_frm->list);
-	addr = vb2_plane_cookie(&bcap_dev->cur_frm->vb, 0);
+	addr = vb2_dma_contig_plane_paddr(&bcap_dev->cur_frm->vb, 0);
 	/* update DMA address */
-	ppi->ops->update_addr(ppi, (unsigned long)(*addr));
+	ppi->ops->update_addr(ppi, (unsigned long)addr);
 	/* enable ppi */
 	ppi->ops->start(ppi);
-	bcap_dev->started = 1;
+	bcap_dev->started = true;
 
 	return 0;
 err:
@@ -613,8 +609,7 @@ static int bcap_enum_input(struct file *file, void *priv,
 	if (input->index >= config->num_inputs)
 		return -EINVAL;
 
-	memcpy(input, &config->inputs[input->index],
-		sizeof(*input));
+	*input = config->inputs[input->index];
 	/* get input status */
 	ret = v4l2_subdev_call(bcap_dev->sd, video, g_input_status, &status);
 	if (!ret)
@@ -667,24 +662,22 @@ static int bcap_try_format(struct bcap_device *bcap,
 	int ret, i;
 
 	for (i = 0; i < BCAP_MAX_FMTS; i++) {
-		if ((pixfmt->pixelformat == bcap_formats[i].pixelformat)) {
-			fmt = &bcap_formats[i];
-			if (mbus_code)
-				*mbus_code = fmt->mbus_code;
-			if (bpp)
-				*bpp = fmt->bpp;
-			v4l2_fill_mbus_format(&mbus_fmt, pixfmt,
-						fmt->mbus_code);
-			ret = v4l2_subdev_call(bcap->sd, video,
-						try_mbus_fmt, &mbus_fmt);
-			if (ret < 0)
-				return ret;
-			v4l2_fill_pix_format(pixfmt, &mbus_fmt);
-			pixfmt->bytesperline = pixfmt->width * fmt->bpp;
-			pixfmt->sizeimage = pixfmt->bytesperline
-						* pixfmt->height;
-			return 0;
-		}
+		if (pixfmt->pixelformat != bcap_formats[i].pixelformat)
+			continue;
+		fmt = &bcap_formats[i];
+		if (mbus_code)
+			*mbus_code = fmt->mbus_code;
+		if (bpp)
+			*bpp = fmt->bpp;
+		v4l2_fill_mbus_format(&mbus_fmt, pixfmt, fmt->mbus_code);
+		ret = v4l2_subdev_call(bcap->sd, video,
+					try_mbus_fmt, &mbus_fmt);
+		if (ret < 0)
+			return ret;
+		v4l2_fill_pix_format(pixfmt, &mbus_fmt);
+		pixfmt->bytesperline = pixfmt->width * fmt->bpp;
+		pixfmt->sizeimage = pixfmt->bytesperline * pixfmt->height;
+		return 0;
 	}
 	return -EINVAL;
 }
@@ -703,14 +696,14 @@ static int bcap_enum_fmt_vid_cap(struct file *file, void  *priv,
 		return ret;
 
 	for (i = 0; i < BCAP_MAX_FMTS; i++) {
-		if (mbus_code == bcap_formats[i].mbus_code) {
-			fmt->type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-			strlcpy(fmt->description,
-					bcap_formats[index].desc,
-					 sizeof(fmt->description));
-			fmt->pixelformat = bcap_formats[index].pixelformat;
-			return 0;
-		}
+		if (mbus_code != bcap_formats[i].mbus_code)
+			continue;
+		fmt->type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+		strlcpy(fmt->description,
+			bcap_formats[index].desc,
+			sizeof(fmt->description));
+		fmt->pixelformat = bcap_formats[index].pixelformat;
+		return 0;
 	}
 	v4l2_err(&bcap_dev->v4l2_dev,
 			"subdev fmt is not supported by bcap\n");
@@ -747,14 +740,14 @@ static int bcap_g_fmt_vid_cap(struct file *file, void *priv,
 		return ret;
 
 	for (i = 0; i < BCAP_MAX_FMTS; i++) {
-		if (mbus_fmt.code == bcap_formats[i].mbus_code) {
-			bcap_fmt = &bcap_formats[i];
-			v4l2_fill_pix_format(pixfmt, &mbus_fmt);
-			pixfmt->bytesperline = pixfmt->width * bcap_fmt->bpp;
-			pixfmt->sizeimage = pixfmt->bytesperline
-						* pixfmt->height;
-			return 0;
-		}
+		if (mbus_fmt.code != bcap_formats[i].mbus_code)
+			continue;
+		bcap_fmt = &bcap_formats[i];
+		v4l2_fill_pix_format(pixfmt, &mbus_fmt);
+		pixfmt->pixelformat = bcap_fmt->pixelformat;
+		pixfmt->bytesperline = pixfmt->width * bcap_fmt->bpp;
+		pixfmt->sizeimage = pixfmt->bytesperline * pixfmt->height;
+		return 0;
 	}
 	v4l2_err(&bcap_dev->v4l2_dev,
 			"subdev fmt is not supported by bcap\n");
@@ -945,7 +938,7 @@ static int __devinit bcap_probe(struct platform_device *pdev)
 
 	bcap_dev->cfg = config;
 
-	bcap_dev->ppi = create_ppi_instance(config->ppi_info);
+	bcap_dev->ppi = ppi_create_instance(config->ppi_info);
 	if (!bcap_dev->ppi) {
 		v4l2_err(pdev->dev.driver, "Unable to create ppi\n");
 		ret = -ENODEV;
@@ -1052,7 +1045,7 @@ err_release_vdev:
 err_cleanup_ctx:
 	vb2_dma_contig_cleanup_ctx(bcap_dev->alloc_ctx);
 err_free_ppi:
-	delete_ppi_instance(bcap_dev->ppi);
+	ppi_delete_instance(bcap_dev->ppi);
 err_free_dev:
 	kfree(bcap_dev);
 	return ret;
@@ -1067,7 +1060,7 @@ static int __devexit bcap_remove(struct platform_device *pdev)
 	video_unregister_device(bcap_dev->video_dev);
 	v4l2_device_unregister(v4l2_dev);
 	vb2_dma_contig_cleanup_ctx(bcap_dev->alloc_ctx);
-	delete_ppi_instance(bcap_dev->ppi);
+	ppi_delete_instance(bcap_dev->ppi);
 	kfree(bcap_dev);
 	return 0;
 }
@@ -1094,6 +1087,6 @@ static __exit void bcap_exit(void)
 module_init(bcap_init);
 module_exit(bcap_exit);
 
-MODULE_DESCRIPTION("Analog Devices video capture driver");
+MODULE_DESCRIPTION("Analog Devices blackfin video capture driver");
 MODULE_AUTHOR("Scott Jiang <[email protected]>");
 MODULE_LICENSE("GPL v2");
diff --git a/drivers/media/video/blackfin/ppi.c b/drivers/media/video/blackfin/ppi.c
index 8139940..801d3eb 100644
--- a/drivers/media/video/blackfin/ppi.c
+++ b/drivers/media/video/blackfin/ppi.c
@@ -17,15 +17,12 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
-#include <linux/kernel.h>
 #include <linux/slab.h>
-#include <linux/ioport.h>
-#include <linux/platform_device.h>
 
 #include <asm/bfin_ppi.h>
-#include <asm/dma.h>
-#include <asm/cacheflush.h>
 #include <asm/blackfin.h>
+#include <asm/cacheflush.h>
+#include <asm/dma.h>
 #include <asm/portmux.h>
 
 #include <media/blackfin/ppi.h>
@@ -172,11 +169,11 @@ static void ppi_update_addr(struct ppi_if *ppi, unsigned long addr)
 	set_dma_start_addr(ppi->info->dma_ch, addr);
 }
 
-struct ppi_if *create_ppi_instance(const struct ppi_info *info)
+struct ppi_if *ppi_create_instance(const struct ppi_info *info)
 {
 	struct ppi_if *ppi;
 
-	if ((info == NULL) || (info->name == NULL) || (info->pin_req == NULL))
+	if (!info || !info->name || !info->pin_req)
 		return NULL;
 
 	if (peripheral_request_list(info->pin_req, KBUILD_MODNAME)) {
@@ -185,7 +182,7 @@ struct ppi_if *create_ppi_instance(const struct ppi_info *info)
 	}
 
 	ppi = kzalloc(sizeof(*ppi), GFP_KERNEL);
-	if (ppi == NULL) {
+	if (!ppi) {
 		peripheral_free_list(info->pin_req);
 		pr_err("unable to allocate memory for ppi handle\n");
 		return NULL;
@@ -197,7 +194,7 @@ struct ppi_if *create_ppi_instance(const struct ppi_info *info)
 	return ppi;
 }
 
-void delete_ppi_instance(struct ppi_if *ppi)
+void ppi_delete_instance(struct ppi_if *ppi)
 {
 	peripheral_free_list(ppi->info->pin_req);
 	kfree(ppi);
diff --git a/include/media/blackfin/ppi.h b/include/media/blackfin/ppi.h
index 96f618e..4e7711a 100644
--- a/include/media/blackfin/ppi.h
+++ b/include/media/blackfin/ppi.h
@@ -58,6 +58,6 @@ struct ppi_if {
 	void *priv;
 };
 
-struct ppi_if *create_ppi_instance(const struct ppi_info *info);
-void delete_ppi_instance(struct ppi_if *ppi);
+struct ppi_if *ppi_create_instance(const struct ppi_info *info);
+void ppi_delete_instance(struct ppi_if *ppi);
 #endif
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits

Reply via email to