[PATCH] Non-coherent contiguous DMA for videobuf2

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

 



Some of you may have noticed that I've been spending a bit of my time with
my nose in the V4L2 code recently...  In this process, I've been chasing a
strange mystery: when the mmp-camera driver is run in contiguous DMA mode,
things in user space (gstreamer or mplayer) slow way down, despite the fact
that they should not even see the difference.

I've also been looking at the discussions on coherent memory on the ARM
architecture and the merry mixups that come from conflicting page
attributes.  Then it occurred to me that the two things might be related.
Yes, I'm a little dense, but things do get through eventually.

So I sat down and bashed out a new vb2 mode for non-coherent but contiguous
DMA buffers.  Once it worked, I noticed two things:

 - Buffer allocation is far more reliable, since buffers need not come from
   the coherent pool.

 - I can now get a full 30+ FPS on the XO 1.75, despite the fact that they
   still don't have acceleration working on the display side.  Using the
   dma-contig mode, that rate is about 10FPS.  Cached memory is a nice
   thing.

Given this, I see no reason to use coherent buffers with vb2 - at least,
not for any platform I've worked on - and every reason to go non-coherent.
So here's a patch adding the new mode, and one showing how mmp-camera uses
it.

Jonathan Corbet (2):
      videobuf2: Add a non-coherent contiguous DMA mode
      marvell-cam: Convert contiguous DMA to non-coherent

 drivers/media/video/Kconfig                  |    5 +
 drivers/media/video/Makefile                 |    1 
 drivers/media/video/marvell-ccic/Kconfig     |    1 
 drivers/media/video/marvell-ccic/mcam-core.c |   62 ++++++++++---
 drivers/media/video/marvell-ccic/mcam-core.h |    2 
 drivers/media/video/videobuf2-dma-nc.c       |  125 +++++++++++++++++++++++++++
 include/media/videobuf2-dma-nc.h             |    9 +
 7 files changed, 190 insertions(+), 15 deletions(-)

Comments?

Thanks,

jon


--
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