All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Tim Nordell <tim.nordell@logicpd.com>
Cc: linux-media@vger.kernel.org, Sakari Ailus <sakari.ailus@iki.fi>
Subject: Re: [PATCH v2 25/26] omap3isp: Move to videobuf2
Date: Wed, 18 Mar 2015 16:59:47 +0200	[thread overview]
Message-ID: <2315546.eR07gyadH5@avalon> (raw)
In-Reply-To: <550991C2.80503@logicpd.com>

Hi Tim,

On Wednesday 18 March 2015 09:54:58 Tim Nordell wrote:
> On 03/18/15 07:39, Laurent Pinchart wrote:
> > On Tuesday 17 March 2015 17:57:30 Tim Nordell wrote:
> >> On 04/21/14 07:29, Laurent Pinchart wrote:
> >>> Replace the custom buffers queue implementation with a videobuf2 queue.
> >>> 
> >>> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> >> 
> >> I realize this is late (it's in the kernel now), but I'm noticing that
> >> this does not appear to properly support the scatter-gather buffers that
> >> were previously supported as far as I recall (and can tell with what was
> >> removed with this patch), especially when using USERPTR.  You can
> >> observe this using "yavta" with the -u parameter.  Can you confirm if
> >> this works for you?  I get the following output from the kernel when
> >> attempting to stream a 640x480 UYVY framebuffer:
> >> 
> >> [  111.381256] contiguous mapping is too small 589824/614400
> > 
> > The OMAP3 ISP uses an IOMMU, physically non-contiguous buffers should thus
> > be mapped contiguously into the device memory space. I haven't tried
> > USERPTR support recently, but this surprises me. It requires
> > investigation. Could you give it a try ?
> 
> That's why I wrote the e-mail since I did give it a try.  It doesn't
> work in kernel v3.19 as expected.  I'm using a BT.656 device (and with
> the patches I submitted last week since it didn't work for my device
> without those that I wrote), so it's a little harder to go back to the
> exact patch that causes it to fail (since I believe it's this patch
> which is pre-BT.656 support) but I would guess that it's the one I
> replied to here.
> 
> The videobuf2-dma-contig framework is what is emitting this error, and
> part of it's framework checks that the buffer is fully contiguous in
> memory rather than doing scatter-gather.

The names might be a bit misleading, vb2-dma-contig requires contiguous memory 
in the device memory space, not in physical memory. The IOMMU, managed through 
dma_map_sg_attrs, should have mapped the userptr buffer contiguously in the 
ISP DMA address space. If it hasn't, that's what need to be investigated.

> The function "vb2_dc_get_contiguous_size(...)" is what finds the full
> contiguous area of the buffer and reports back internally how much is
> available in a row.  Would videobuf2-dma-sg have been a better choice here? 
> I tried a naive conversion to that (that is, I'm sure I messed something
> up), but it yielded the kernel spewing messages about "Address Hole seen by
> CAM" from the omap_l3_smx driver.

vb2-dma-sg is used for devices that support scatter-gather. The OMAP3 ISP 
doesn't, it requires DMA contiguous memory.

-- 
Regards,

Laurent Pinchart


  reply	other threads:[~2015-03-18 14:59 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-21 12:28 [PATCH v2 00/26] OMAP3 ISP: Move to videobuf2 Laurent Pinchart
2014-04-21 12:28 ` [PATCH v2 01/26] omap3isp: stat: Rename IS_COHERENT_BUF to ISP_STAT_USES_DMAENGINE Laurent Pinchart
2014-04-30 22:45   ` Sakari Ailus
2014-04-30 22:48     ` Laurent Pinchart
2014-05-01 11:15       ` Sakari Ailus
2014-05-01 16:08         ` Laurent Pinchart
2014-04-21 12:28 ` [PATCH v2 02/26] omap3isp: stat: Remove impossible WARN_ON Laurent Pinchart
2014-04-21 12:28 ` [PATCH v2 03/26] omap3isp: stat: Share common code for buffer allocation Laurent Pinchart
2014-04-21 12:28 ` [PATCH v2 04/26] omap3isp: stat: Merge dma_addr and iommu_addr fields Laurent Pinchart
2014-04-21 12:28 ` [PATCH v2 05/26] omap3isp: stat: Store sg table in ispstat_buffer Laurent Pinchart
2014-04-21 12:28 ` [PATCH v2 06/26] omap3isp: stat: Use the DMA API Laurent Pinchart
2014-04-21 12:28 ` [PATCH v2 07/26] omap3isp: ccdc: Use the DMA API for LSC Laurent Pinchart
2014-04-21 12:28 ` [PATCH v2 08/26] omap3isp: ccdc: Use the DMA API for FPC Laurent Pinchart
2014-04-21 12:28 ` [PATCH v2 09/26] omap3isp: video: Set the buffer bytesused field at completion time Laurent Pinchart
2014-04-21 12:28 ` [PATCH v2 10/26] omap3isp: queue: Move IOMMU handling code to the queue Laurent Pinchart
2014-04-21 12:28 ` [PATCH v2 11/26] omap3isp: queue: Use sg_table structure Laurent Pinchart
2014-04-21 12:28 ` [PATCH v2 12/26] omap3isp: queue: Merge the prepare and sglist functions Laurent Pinchart
2014-04-21 12:28 ` [PATCH v2 13/26] omap3isp: queue: Inline the ispmmu_v(un)map functions Laurent Pinchart
2014-04-21 12:29 ` [PATCH v2 14/26] omap3isp: queue: Allocate kernel buffers with dma_alloc_coherent Laurent Pinchart
2014-04-21 12:29 ` [PATCH v2 15/26] omap3isp: queue: Fix the dma_map_sg() return value check Laurent Pinchart
2014-04-21 12:29 ` [PATCH v2 16/26] omap3isp: queue: Map PFNMAP buffers to device Laurent Pinchart
2014-04-21 12:29 ` [PATCH v2 17/26] omap3isp: queue: Use sg_alloc_table_from_pages() Laurent Pinchart
2014-04-21 12:29 ` [PATCH v2 18/26] omap3isp: Use the ARM DMA IOMMU-aware operations Laurent Pinchart
2014-04-21 12:29 ` [PATCH v2 19/26] omap3isp: queue: Don't build scatterlist for kernel buffer Laurent Pinchart
2014-04-21 12:29 ` [PATCH v2 20/26] omap3isp: Move queue mutex to isp_video structure Laurent Pinchart
2014-04-21 12:29 ` [PATCH v2 21/26] omap3isp: Move queue irqlock " Laurent Pinchart
2014-04-21 12:29 ` [PATCH v2 22/26] omap3isp: Move buffer irqlist to isp_buffer structure Laurent Pinchart
2014-04-21 12:29 ` [PATCH v2 23/26] omap3isp: Cancel all queued buffers when stopping the video stream Laurent Pinchart
2014-04-21 12:29 ` [PATCH v2 24/26] v4l: vb2: Add a function to discard all DONE buffers Laurent Pinchart
2014-04-21 12:29 ` [PATCH v2 25/26] omap3isp: Move to videobuf2 Laurent Pinchart
2015-03-17 22:57   ` Tim Nordell
2015-03-18 12:39     ` Laurent Pinchart
2015-03-18 14:54       ` Tim Nordell
2015-03-18 14:59         ` Laurent Pinchart [this message]
2015-03-18 15:19           ` Tim Nordell
2015-03-18 15:21             ` Laurent Pinchart
2015-03-18 19:49               ` Tim Nordell
2015-03-18 20:58                 ` Tim Nordell
2015-03-18 21:44                   ` Sakari Ailus
2015-03-18 22:43                     ` Tim Nordell
2015-03-18 22:43                       ` Tim Nordell
2014-04-21 12:29 ` [PATCH v2 26/26] omap3isp: Rename isp_buffer isp_addr field to dma Laurent Pinchart
2014-05-01 17:37 ` [PATCH v2 00/26] OMAP3 ISP: Move to videobuf2 Sakari Ailus

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2315546.eR07gyadH5@avalon \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=sakari.ailus@iki.fi \
    --cc=tim.nordell@logicpd.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.