[PATCH v4 05/13] media: platform: pxa_camera: trivial move of functions

2016-08-15 Thread Robert Jarzmik
Move the functions in the file to be regrouped into meaningful blocks :
 1. pxa camera core handling functions, manipulating the herdware
 2. videobuf2 functions, dealing with video buffers
 3. video ioctl (vidioc) related functions
 4. driver probing, removal, suspend and resume

This patch doesn't modify a single line of code.

Signed-off-by: Robert Jarzmik 
---
Since v3: replace void *alloc_ctxt by struct device *alloc_devs impact
---
 drivers/media/platform/soc_camera/pxa_camera.c | 475 +
 1 file changed, 242 insertions(+), 233 deletions(-)

diff --git a/drivers/media/platform/soc_camera/pxa_camera.c 
b/drivers/media/platform/soc_camera/pxa_camera.c
index 5bf97c6b6810..0a9e4bdccece 100644
--- a/drivers/media/platform/soc_camera/pxa_camera.c
+++ b/drivers/media/platform/soc_camera/pxa_camera.c
@@ -538,239 +538,6 @@ out:
spin_unlock_irqrestore(>lock, flags);
 }
 
-static void pxa_buffer_cleanup(struct pxa_buffer *buf)
-{
-   int i;
-
-   for (i = 0; i < 3 && buf->descs[i]; i++) {
-   dmaengine_desc_free(buf->descs[i]);
-   kfree(buf->sg[i]);
-   buf->descs[i] = NULL;
-   buf->sg[i] = NULL;
-   buf->sg_len[i] = 0;
-   buf->plane_sizes[i] = 0;
-   }
-   buf->nb_planes = 0;
-}
-
-static int pxa_buffer_init(struct pxa_camera_dev *pcdev,
-  struct pxa_buffer *buf)
-{
-   struct vb2_buffer *vb = >vbuf.vb2_buf;
-   struct sg_table *sgt = vb2_dma_sg_plane_desc(vb, 0);
-   int nb_channels = pcdev->channels;
-   int i, ret = 0;
-   unsigned long size = vb2_plane_size(vb, 0);
-
-   switch (nb_channels) {
-   case 1:
-   buf->plane_sizes[0] = size;
-   break;
-   case 3:
-   buf->plane_sizes[0] = size / 2;
-   buf->plane_sizes[1] = size / 4;
-   buf->plane_sizes[2] = size / 4;
-   break;
-   default:
-   return -EINVAL;
-   };
-   buf->nb_planes = nb_channels;
-
-   ret = sg_split(sgt->sgl, sgt->nents, 0, nb_channels,
-  buf->plane_sizes, buf->sg, buf->sg_len, GFP_KERNEL);
-   if (ret < 0) {
-   dev_err(pcdev_to_dev(pcdev),
-   "sg_split failed: %d\n", ret);
-   return ret;
-   }
-   for (i = 0; i < nb_channels; i++) {
-   ret = pxa_init_dma_channel(pcdev, buf, i,
-  buf->sg[i], buf->sg_len[i]);
-   if (ret) {
-   pxa_buffer_cleanup(buf);
-   return ret;
-   }
-   }
-   INIT_LIST_HEAD(>queue);
-
-   return ret;
-}
-
-static void pxac_vb2_cleanup(struct vb2_buffer *vb)
-{
-   struct pxa_buffer *buf = vb2_to_pxa_buffer(vb);
-   struct pxa_camera_dev *pcdev = vb2_get_drv_priv(vb->vb2_queue);
-
-   dev_dbg(pcdev_to_dev(pcdev),
-"%s(vb=%p)\n", __func__, vb);
-   pxa_buffer_cleanup(buf);
-}
-
-static void pxac_vb2_queue(struct vb2_buffer *vb)
-{
-   struct pxa_buffer *buf = vb2_to_pxa_buffer(vb);
-   struct pxa_camera_dev *pcdev = vb2_get_drv_priv(vb->vb2_queue);
-
-   dev_dbg(pcdev_to_dev(pcdev),
-"%s(vb=%p) nb_channels=%d size=%lu active=%p\n",
-   __func__, vb, pcdev->channels, vb2_get_plane_payload(vb, 0),
-   pcdev->active);
-
-   list_add_tail(>queue, >capture);
-
-   pxa_dma_add_tail_buf(pcdev, buf);
-}
-
-/*
- * Please check the DMA prepared buffer structure in :
- *   Documentation/video4linux/pxa_camera.txt
- * Please check also in pxa_camera_check_link_miss() to understand why DMA 
chain
- * modification while DMA chain is running will work anyway.
- */
-static int pxac_vb2_prepare(struct vb2_buffer *vb)
-{
-   struct pxa_camera_dev *pcdev = vb2_get_drv_priv(vb->vb2_queue);
-   struct pxa_buffer *buf = vb2_to_pxa_buffer(vb);
-   struct soc_camera_device *icd = soc_camera_from_vb2q(vb->vb2_queue);
-   int ret = 0;
-
-   switch (pcdev->channels) {
-   case 1:
-   case 3:
-   vb2_set_plane_payload(vb, 0, icd->sizeimage);
-   break;
-   default:
-   return -EINVAL;
-   }
-
-   dev_dbg(pcdev_to_dev(pcdev),
-"%s (vb=%p) nb_channels=%d size=%lu\n",
-   __func__, vb, pcdev->channels, vb2_get_plane_payload(vb, 0));
-
-   WARN_ON(!icd->current_fmt);
-
-#ifdef DEBUG
-   /*
-* This can be useful if you want to see if we actually fill
-* the buffer with something
-*/
-   for (i = 0; i < vb->num_planes; i++)
-   memset((void *)vb2_plane_vaddr(vb, i),
-  0xaa, vb2_get_plane_payload(vb, i));
-#endif
-
-   /*
-* I think, in buf_prepare you only have to protect global data,
-* the actual buffer is yours
-*/
-   buf->inwork = 0;
-   

[PATCH v4 05/13] media: platform: pxa_camera: trivial move of functions

2016-08-15 Thread Robert Jarzmik
Move the functions in the file to be regrouped into meaningful blocks :
 1. pxa camera core handling functions, manipulating the herdware
 2. videobuf2 functions, dealing with video buffers
 3. video ioctl (vidioc) related functions
 4. driver probing, removal, suspend and resume

This patch doesn't modify a single line of code.

Signed-off-by: Robert Jarzmik 
---
Since v3: replace void *alloc_ctxt by struct device *alloc_devs impact
---
 drivers/media/platform/soc_camera/pxa_camera.c | 475 +
 1 file changed, 242 insertions(+), 233 deletions(-)

diff --git a/drivers/media/platform/soc_camera/pxa_camera.c 
b/drivers/media/platform/soc_camera/pxa_camera.c
index 5bf97c6b6810..0a9e4bdccece 100644
--- a/drivers/media/platform/soc_camera/pxa_camera.c
+++ b/drivers/media/platform/soc_camera/pxa_camera.c
@@ -538,239 +538,6 @@ out:
spin_unlock_irqrestore(>lock, flags);
 }
 
-static void pxa_buffer_cleanup(struct pxa_buffer *buf)
-{
-   int i;
-
-   for (i = 0; i < 3 && buf->descs[i]; i++) {
-   dmaengine_desc_free(buf->descs[i]);
-   kfree(buf->sg[i]);
-   buf->descs[i] = NULL;
-   buf->sg[i] = NULL;
-   buf->sg_len[i] = 0;
-   buf->plane_sizes[i] = 0;
-   }
-   buf->nb_planes = 0;
-}
-
-static int pxa_buffer_init(struct pxa_camera_dev *pcdev,
-  struct pxa_buffer *buf)
-{
-   struct vb2_buffer *vb = >vbuf.vb2_buf;
-   struct sg_table *sgt = vb2_dma_sg_plane_desc(vb, 0);
-   int nb_channels = pcdev->channels;
-   int i, ret = 0;
-   unsigned long size = vb2_plane_size(vb, 0);
-
-   switch (nb_channels) {
-   case 1:
-   buf->plane_sizes[0] = size;
-   break;
-   case 3:
-   buf->plane_sizes[0] = size / 2;
-   buf->plane_sizes[1] = size / 4;
-   buf->plane_sizes[2] = size / 4;
-   break;
-   default:
-   return -EINVAL;
-   };
-   buf->nb_planes = nb_channels;
-
-   ret = sg_split(sgt->sgl, sgt->nents, 0, nb_channels,
-  buf->plane_sizes, buf->sg, buf->sg_len, GFP_KERNEL);
-   if (ret < 0) {
-   dev_err(pcdev_to_dev(pcdev),
-   "sg_split failed: %d\n", ret);
-   return ret;
-   }
-   for (i = 0; i < nb_channels; i++) {
-   ret = pxa_init_dma_channel(pcdev, buf, i,
-  buf->sg[i], buf->sg_len[i]);
-   if (ret) {
-   pxa_buffer_cleanup(buf);
-   return ret;
-   }
-   }
-   INIT_LIST_HEAD(>queue);
-
-   return ret;
-}
-
-static void pxac_vb2_cleanup(struct vb2_buffer *vb)
-{
-   struct pxa_buffer *buf = vb2_to_pxa_buffer(vb);
-   struct pxa_camera_dev *pcdev = vb2_get_drv_priv(vb->vb2_queue);
-
-   dev_dbg(pcdev_to_dev(pcdev),
-"%s(vb=%p)\n", __func__, vb);
-   pxa_buffer_cleanup(buf);
-}
-
-static void pxac_vb2_queue(struct vb2_buffer *vb)
-{
-   struct pxa_buffer *buf = vb2_to_pxa_buffer(vb);
-   struct pxa_camera_dev *pcdev = vb2_get_drv_priv(vb->vb2_queue);
-
-   dev_dbg(pcdev_to_dev(pcdev),
-"%s(vb=%p) nb_channels=%d size=%lu active=%p\n",
-   __func__, vb, pcdev->channels, vb2_get_plane_payload(vb, 0),
-   pcdev->active);
-
-   list_add_tail(>queue, >capture);
-
-   pxa_dma_add_tail_buf(pcdev, buf);
-}
-
-/*
- * Please check the DMA prepared buffer structure in :
- *   Documentation/video4linux/pxa_camera.txt
- * Please check also in pxa_camera_check_link_miss() to understand why DMA 
chain
- * modification while DMA chain is running will work anyway.
- */
-static int pxac_vb2_prepare(struct vb2_buffer *vb)
-{
-   struct pxa_camera_dev *pcdev = vb2_get_drv_priv(vb->vb2_queue);
-   struct pxa_buffer *buf = vb2_to_pxa_buffer(vb);
-   struct soc_camera_device *icd = soc_camera_from_vb2q(vb->vb2_queue);
-   int ret = 0;
-
-   switch (pcdev->channels) {
-   case 1:
-   case 3:
-   vb2_set_plane_payload(vb, 0, icd->sizeimage);
-   break;
-   default:
-   return -EINVAL;
-   }
-
-   dev_dbg(pcdev_to_dev(pcdev),
-"%s (vb=%p) nb_channels=%d size=%lu\n",
-   __func__, vb, pcdev->channels, vb2_get_plane_payload(vb, 0));
-
-   WARN_ON(!icd->current_fmt);
-
-#ifdef DEBUG
-   /*
-* This can be useful if you want to see if we actually fill
-* the buffer with something
-*/
-   for (i = 0; i < vb->num_planes; i++)
-   memset((void *)vb2_plane_vaddr(vb, i),
-  0xaa, vb2_get_plane_payload(vb, i));
-#endif
-
-   /*
-* I think, in buf_prepare you only have to protect global data,
-* the actual buffer is yours
-*/
-   buf->inwork = 0;
-   pxa_videobuf_set_actdma(pcdev,