This is an automatic generated email to let you know that the following patch 
were queued at the 
http://git.linuxtv.org/media_tree.git tree:

Subject: [media] omap3isp: queue: Don't build scatterlist for kernel buffer
Author:  Laurent Pinchart <[email protected]>
Date:    Fri Mar 7 21:29:31 2014 -0300

The scatterlist is not needed for those buffers, don't build it.

Signed-off-by: Laurent Pinchart <[email protected]>
Acked-by: Sakari Ailus <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>

 drivers/media/platform/omap3isp/ispqueue.c |   24 +++---------------------
 drivers/media/platform/omap3isp/ispqueue.h |    8 ++++----
 2 files changed, 7 insertions(+), 25 deletions(-)

---

http://git.linuxtv.org/media_tree.git?a=commitdiff;h=1e345d4ab4a873a0c96ecbdfdd2f9a36998bba6f

diff --git a/drivers/media/platform/omap3isp/ispqueue.c 
b/drivers/media/platform/omap3isp/ispqueue.c
index 9c90fb0..515ed94 100644
--- a/drivers/media/platform/omap3isp/ispqueue.c
+++ b/drivers/media/platform/omap3isp/ispqueue.c
@@ -147,21 +147,6 @@ out:
 }
 
 /*
- * isp_video_buffer_prepare_kernel - Build scatter list for a kernel-allocated
- * buffer
- *
- * Retrieve the sgtable using the DMA API.
- */
-static int isp_video_buffer_prepare_kernel(struct isp_video_buffer *buf)
-{
-       struct isp_video_fh *vfh = isp_video_queue_to_isp_video_fh(buf->queue);
-       struct isp_video *video = vfh->video;
-
-       return dma_get_sgtable(video->isp->dev, &buf->sgt, buf->vaddr,
-                              buf->dma, PAGE_ALIGN(buf->vbuf.length));
-}
-
-/*
  * isp_video_buffer_cleanup - Release pages for a userspace VMA.
  *
  * Release pages locked by a call isp_video_buffer_prepare_user and free the
@@ -181,10 +166,9 @@ static void isp_video_buffer_cleanup(struct 
isp_video_buffer *buf)
                          ? DMA_FROM_DEVICE : DMA_TO_DEVICE;
                dma_unmap_sg_attrs(buf->queue->dev, buf->sgt.sgl,
                                   buf->sgt.orig_nents, direction, &attrs);
+               sg_free_table(&buf->sgt);
        }
 
-       sg_free_table(&buf->sgt);
-
        if (buf->pages != NULL) {
                isp_video_buffer_lock_vma(buf, 0);
 
@@ -400,7 +384,7 @@ done:
  *
  * - validating VMAs (userspace buffers only)
  * - locking pages and VMAs into memory (userspace buffers only)
- * - building page and scatter-gather lists
+ * - building page and scatter-gather lists (userspace buffers only)
  * - mapping buffers for DMA operation
  * - performing driver-specific preparation
  *
@@ -416,9 +400,7 @@ static int isp_video_buffer_prepare(struct isp_video_buffer 
*buf)
 
        switch (buf->vbuf.memory) {
        case V4L2_MEMORY_MMAP:
-               ret = isp_video_buffer_prepare_kernel(buf);
-               if (ret < 0)
-                       goto done;
+               ret = 0;
                break;
 
        case V4L2_MEMORY_USERPTR:
diff --git a/drivers/media/platform/omap3isp/ispqueue.h 
b/drivers/media/platform/omap3isp/ispqueue.h
index ae4acb9..27189bb 100644
--- a/drivers/media/platform/omap3isp/ispqueue.h
+++ b/drivers/media/platform/omap3isp/ispqueue.h
@@ -70,8 +70,8 @@ enum isp_video_buffer_state {
  * @vaddr: Memory virtual address (for kernel buffers)
  * @vm_flags: Buffer VMA flags (for userspace buffers)
  * @npages: Number of pages (for userspace buffers)
+ * @sgt: Scatter gather table (for userspace buffers)
  * @pages: Pages table (for userspace non-VM_PFNMAP buffers)
- * @sgt: Scatter gather table
  * @vbuf: V4L2 buffer
  * @irqlist: List head for insertion into IRQ queue
  * @state: Current buffer state
@@ -90,11 +90,11 @@ struct isp_video_buffer {
        /* For userspace buffers. */
        vm_flags_t vm_flags;
        unsigned int npages;
-       struct page **pages;
-
-       /* For all buffers. */
        struct sg_table sgt;
 
+       /* For non-VM_PFNMAP userspace buffers. */
+       struct page **pages;
+
        /* Touched by the interrupt handler. */
        struct v4l2_buffer vbuf;
        struct list_head irqlist;

_______________________________________________
linuxtv-commits mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to