From: Vinod Koul <vinod.koul@intel.com>
To: Daniel Mack <zonque@gmail.com>
Cc: mark.rutland@arm.com, s.neumann@raumfeld.com,
linux-mtd@lists.infradead.org, haojian.zhuang@linaro.org,
Robert Jarzmik <robert.jarzmik@free.fr>,
cxie4@marvell.com, lars@metafoo.de, nico@linaro.org,
sachin.kamat@linaro.org, marek.vasut@gmail.com,
ezequiel.garcia@free-electrons.com, rmk+kernel@arm.linux.org.uk,
devicetree@vger.kernel.org, samuel@sortiz.org, arnd@arndb.de,
broonie@kernel.org, linux-arm-kernel@lists.infradead.org,
thomas.petazzoni@free-electrons.com, eric.y.miao@gmail.com,
mika.westerberg@linux.jf.intel.com, gregkh@linuxfoundation.org,
davem@davemloft.net, kernel@pengutronix.de, djbw@fb.com,
g.liakhovetski@gmx.de
Subject: Re: [PATCH 00/20] ARM: pxa: move core and drivers to dmaengine
Date: Wed, 14 Aug 2013 15:30:10 +0530 [thread overview]
Message-ID: <20130814100010.GO32147@intel.com> (raw)
In-Reply-To: <52061C53.4050905@gmail.com>
On Sat, Aug 10, 2013 at 12:56:19PM +0200, Daniel Mack wrote:
> Hi Robert,
>
> On 10.08.2013 00:50, Robert Jarzmik wrote:
> > Daniel Mack <zonque@gmail.com> writes:
> >
> >> * camera driver:
> >> I started the transition, but I'm not sure how much sense that
> >> makes without access to the hardware. I'd much appreciate if
> >> anyone could volunteer for this piece; I'll happily share what
> >> I got so far. Sascha, Sachin, Guennadi?
> > Hi Daniel,
> >
> > Do you mean this driver ? :
> > drivers/media/platform/soc_camera/pxa_camera.c
>
> Yes, exactly.
>
> > In that case I might help. But before I can do that, I have to be convinced that
> > dmaengine can deal with this driver. I'm thinking in particular of :
> > - "hot running DMA" queuing
> > - multiple DMA channel synchronization (ie. 3 channel sync)
> >
> > All that is described in there :
> > Documentation/video4linux/pxa_camera.txt
>
> Yes, I've seen that, and while the documentation about all that is
> excellent, I lack an explanation why things are so complicated for this
> application, and why a simple cyclic DMA approach does not suffice here.
> I'm sure there's a reason though.
>
> There might be need to teach the dmaengine core more functionality, but
> in order to do that, we first need to understand the exact requirements.
>
> > If someone with dmaengine knowledge could have a look at pxa_camera.txt (maybe
> > Vinod ?) and tell me that dma_engine framework fullfills the 2 requirements,
> > then I'll be happy to help.
>
> Yes, Vinod and and Dan are certainly the best ones to comment on that I
> think.
I read the file esp the "DMA flow" and "DMA hot chaining timeslice issue". I can
say with "properly" implemented dmaengine driver this is very much doable.
Have you guys read: Documentation/dmaengine.txt?
So for "hot chaning" it would work as follows:
Client, allocates and channel and prepares the descriptors A B & C
Client (video), submits buffer A, Buffer B. Both are queued by dma driver
Client calls dma_async_issue_pending
DMA driver will start Buffer A. It gets the completetion for A and then Starts
B. It will invoke callbakc for A.
If you submit C, and invoke dma_async_issue_pending(), C is queued
On B completetion, the DMA driver will start C and invoke callback for B.
If B completes before C is submitted, after submit and invoking
dma_async_issue_pending(), the C buffer will be queued and started.
~Vinod
WARNING: multiple messages have this Message-ID (diff)
From: vinod.koul@intel.com (Vinod Koul)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 00/20] ARM: pxa: move core and drivers to dmaengine
Date: Wed, 14 Aug 2013 15:30:10 +0530 [thread overview]
Message-ID: <20130814100010.GO32147@intel.com> (raw)
In-Reply-To: <52061C53.4050905@gmail.com>
On Sat, Aug 10, 2013 at 12:56:19PM +0200, Daniel Mack wrote:
> Hi Robert,
>
> On 10.08.2013 00:50, Robert Jarzmik wrote:
> > Daniel Mack <zonque@gmail.com> writes:
> >
> >> * camera driver:
> >> I started the transition, but I'm not sure how much sense that
> >> makes without access to the hardware. I'd much appreciate if
> >> anyone could volunteer for this piece; I'll happily share what
> >> I got so far. Sascha, Sachin, Guennadi?
> > Hi Daniel,
> >
> > Do you mean this driver ? :
> > drivers/media/platform/soc_camera/pxa_camera.c
>
> Yes, exactly.
>
> > In that case I might help. But before I can do that, I have to be convinced that
> > dmaengine can deal with this driver. I'm thinking in particular of :
> > - "hot running DMA" queuing
> > - multiple DMA channel synchronization (ie. 3 channel sync)
> >
> > All that is described in there :
> > Documentation/video4linux/pxa_camera.txt
>
> Yes, I've seen that, and while the documentation about all that is
> excellent, I lack an explanation why things are so complicated for this
> application, and why a simple cyclic DMA approach does not suffice here.
> I'm sure there's a reason though.
>
> There might be need to teach the dmaengine core more functionality, but
> in order to do that, we first need to understand the exact requirements.
>
> > If someone with dmaengine knowledge could have a look at pxa_camera.txt (maybe
> > Vinod ?) and tell me that dma_engine framework fullfills the 2 requirements,
> > then I'll be happy to help.
>
> Yes, Vinod and and Dan are certainly the best ones to comment on that I
> think.
I read the file esp the "DMA flow" and "DMA hot chaining timeslice issue". I can
say with "properly" implemented dmaengine driver this is very much doable.
Have you guys read: Documentation/dmaengine.txt?
So for "hot chaning" it would work as follows:
Client, allocates and channel and prepares the descriptors A B & C
Client (video), submits buffer A, Buffer B. Both are queued by dma driver
Client calls dma_async_issue_pending
DMA driver will start Buffer A. It gets the completetion for A and then Starts
B. It will invoke callbakc for A.
If you submit C, and invoke dma_async_issue_pending(), C is queued
On B completetion, the DMA driver will start C and invoke callback for B.
If B completes before C is submitted, after submit and invoking
dma_async_issue_pending(), the C buffer will be queued and started.
~Vinod
next prev parent reply other threads:[~2013-08-14 10:00 UTC|newest]
Thread overview: 126+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-07 15:33 [PATCH 00/20] ARM: pxa: move core and drivers to dmaengine Daniel Mack
2013-08-07 15:33 ` Daniel Mack
2013-08-07 15:33 ` [PATCH 01/20] mtd: pxa3xx-nand: replace pxa_request_dma with dmaengine Daniel Mack
2013-08-07 15:33 ` Daniel Mack
2013-08-07 17:46 ` Ezequiel Garcia
2013-08-07 17:46 ` Ezequiel Garcia
2013-08-08 6:42 ` Daniel Mack
2013-08-08 6:42 ` Daniel Mack
2013-08-08 10:12 ` Ezequiel Garcia
2013-08-08 10:12 ` Ezequiel Garcia
2013-08-08 10:14 ` Daniel Mack
2013-08-08 10:14 ` Daniel Mack
2013-08-07 15:33 ` [PATCH 02/20] mtd: pxa3xx-nand: use mmp_pdma_filter_fn and dma_request_slave_channel_compat Daniel Mack
2013-08-07 15:33 ` Daniel Mack
2013-08-07 15:33 ` [PATCH 03/20] ARM: pxa: ssp: add shortcut for &pdev->dev Daniel Mack
2013-08-07 15:33 ` Daniel Mack
2013-08-08 7:32 ` Brian Norris
2013-08-08 7:32 ` Brian Norris
2013-08-08 7:52 ` Artem Bityutskiy
2013-08-08 7:52 ` Artem Bityutskiy
2013-08-08 8:20 ` Daniel Mack
2013-08-08 8:20 ` Daniel Mack
2013-08-07 15:33 ` [PATCH 04/20] ARM: pxa: ssp: add DT bindings Daniel Mack
2013-08-07 15:33 ` Daniel Mack
2013-08-07 15:54 ` Arnd Bergmann
2013-08-07 15:54 ` Arnd Bergmann
2013-08-07 15:33 ` [PATCH 05/20] ARM: pxa: ssp: use devm_ functions Daniel Mack
2013-08-07 15:33 ` Daniel Mack
2013-08-07 15:33 ` [PATCH 06/20] tty: serial: pxa: remove old cruft Daniel Mack
2013-08-07 15:33 ` Daniel Mack
2013-08-12 8:19 ` Daniel Mack
2013-08-12 18:08 ` Greg KH
2013-08-07 15:33 ` [PATCH 07/20] spi: spi-pxa2xx: remove legacy PXA DMA bits Daniel Mack
2013-08-07 15:33 ` Daniel Mack
2013-08-07 15:55 ` Mark Brown
2013-08-07 15:55 ` Mark Brown
2013-08-07 15:59 ` Daniel Mack
2013-08-07 15:59 ` Daniel Mack
2013-08-07 16:41 ` Mark Brown
2013-08-07 16:41 ` Mark Brown
2013-08-07 15:33 ` [PATCH 08/20] mmc: host: pxamci: switch over to dmaengine use Daniel Mack
2013-08-07 15:33 ` Daniel Mack
2014-10-15 18:32 ` Vasily Khoruzhick
2014-10-15 18:32 ` Vasily Khoruzhick
2014-10-15 18:32 ` Vasily Khoruzhick
2014-10-16 17:57 ` Vasily Khoruzhick
2014-10-16 17:57 ` Vasily Khoruzhick
2014-10-16 17:57 ` Vasily Khoruzhick
2013-08-07 15:33 ` [PATCH 09/20] ata: pdata_pxa: migrate over to dmaengine usage Daniel Mack
2013-08-07 15:33 ` Daniel Mack
2013-08-07 15:59 ` Arnd Bergmann
2013-08-07 15:59 ` Arnd Bergmann
2013-08-07 15:33 ` [PATCH 10/20] net: irda: pxaficp_ir: switch to dmaengine Daniel Mack
2013-08-07 15:33 ` Daniel Mack
2013-08-07 15:34 ` [PATCH 11/20] net: smc91x.c: switch to generic buf-to-buf DMA offload Daniel Mack
2013-08-07 15:34 ` Daniel Mack
2013-08-07 15:34 ` [PATCH 12/20] net: smc911x.c: switch to dmaengine API Daniel Mack
2013-08-07 15:34 ` Daniel Mack
2013-08-07 15:34 ` [PATCH 13/20] ASoC: pxa: pxa-ssp: add DT bindings Daniel Mack
2013-08-07 15:34 ` Daniel Mack
2013-08-07 16:40 ` Mark Brown
2013-08-07 16:40 ` Mark Brown
2013-08-08 9:39 ` Daniel Mack
2013-08-08 9:39 ` Daniel Mack
2013-08-08 13:20 ` Mark Brown
2013-08-08 13:20 ` Mark Brown
2013-08-09 13:03 ` Daniel Mack
2013-08-09 13:03 ` Daniel Mack
2013-08-07 15:34 ` [PATCH 14/20] ASoC: pxa: use snd_dmaengine_dai_dma_data Daniel Mack
2013-08-07 15:34 ` Daniel Mack
2013-08-07 15:57 ` Mark Brown
2013-08-07 15:57 ` Mark Brown
2013-08-07 15:34 ` [PATCH 15/20] ASoC: pxa: pxa-ssp: set dma filter data from startup hook Daniel Mack
2013-08-07 15:34 ` Daniel Mack
2013-08-07 15:58 ` Mark Brown
2013-08-07 15:58 ` Mark Brown
2013-08-07 15:34 ` [PATCH 16/20] ASoC: pxa: add DT bindings for pxa2xx-pcm Daniel Mack
2013-08-07 15:34 ` Daniel Mack
2013-08-07 16:06 ` Mark Brown
2013-08-07 16:06 ` Mark Brown
2013-08-07 15:34 ` [PATCH 17/20] ASoC: pxa: pxa-pcm-lib: switch over to snd-soc-dmaengine-pcm Daniel Mack
2013-08-07 15:34 ` Daniel Mack
2013-08-07 16:07 ` Mark Brown
2013-08-07 16:07 ` Mark Brown
2013-08-07 16:10 ` Daniel Mack
2013-08-07 16:10 ` Daniel Mack
2013-08-07 16:32 ` Mark Brown
2013-08-07 16:32 ` Mark Brown
2013-08-08 8:18 ` Daniel Mack
2013-08-08 8:18 ` Daniel Mack
2013-08-08 8:44 ` Lars-Peter Clausen
2013-08-08 8:44 ` Lars-Peter Clausen
2013-08-08 9:03 ` Daniel Mack
2013-08-08 9:03 ` Daniel Mack
2013-08-08 9:36 ` Mark Brown
2013-08-08 9:36 ` Mark Brown
2013-08-08 9:43 ` Daniel Mack
2013-08-08 9:43 ` Daniel Mack
2013-08-08 10:35 ` Mark Brown
2013-08-08 10:35 ` Mark Brown
2013-08-08 10:39 ` Daniel Mack
2013-08-08 10:39 ` Daniel Mack
2013-08-08 11:03 ` Mark Brown
2013-08-08 11:03 ` Mark Brown
2013-08-08 10:25 ` Russell King - ARM Linux
2013-08-08 10:25 ` Russell King - ARM Linux
2013-08-07 15:34 ` [PATCH 18/20] ARM: pxa: register static mmp_pdma device Daniel Mack
2013-08-07 15:34 ` Daniel Mack
2013-08-07 15:34 ` [PATCH 19/20] ARM: mmp: " Daniel Mack
2013-08-07 15:34 ` Daniel Mack
2013-08-07 15:34 ` [PATCH 20/20] ARM: pxa: remove old DMA implementation Daniel Mack
2013-08-07 15:34 ` Daniel Mack
2013-08-07 16:08 ` [PATCH 00/20] ARM: pxa: move core and drivers to dmaengine Arnd Bergmann
2013-08-07 16:08 ` Arnd Bergmann
2013-08-09 22:50 ` Robert Jarzmik
2013-08-09 22:50 ` Robert Jarzmik
2013-08-10 10:56 ` Daniel Mack
2013-08-10 10:56 ` Daniel Mack
2013-08-11 20:05 ` Robert Jarzmik
2013-08-11 20:05 ` Robert Jarzmik
2013-08-14 10:00 ` Vinod Koul [this message]
2013-08-14 10:00 ` Vinod Koul
2013-08-15 15:22 ` Robert Jarzmik
2013-08-15 15:22 ` Robert Jarzmik
2013-08-15 15:30 ` Daniel Mack
2013-08-15 15:30 ` Daniel Mack
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=20130814100010.GO32147@intel.com \
--to=vinod.koul@intel.com \
--cc=arnd@arndb.de \
--cc=broonie@kernel.org \
--cc=cxie4@marvell.com \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=djbw@fb.com \
--cc=eric.y.miao@gmail.com \
--cc=ezequiel.garcia@free-electrons.com \
--cc=g.liakhovetski@gmx.de \
--cc=gregkh@linuxfoundation.org \
--cc=haojian.zhuang@linaro.org \
--cc=kernel@pengutronix.de \
--cc=lars@metafoo.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-mtd@lists.infradead.org \
--cc=marek.vasut@gmail.com \
--cc=mark.rutland@arm.com \
--cc=mika.westerberg@linux.jf.intel.com \
--cc=nico@linaro.org \
--cc=rmk+kernel@arm.linux.org.uk \
--cc=robert.jarzmik@free.fr \
--cc=s.neumann@raumfeld.com \
--cc=sachin.kamat@linaro.org \
--cc=samuel@sortiz.org \
--cc=thomas.petazzoni@free-electrons.com \
--cc=zonque@gmail.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.