All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jassi Brar <jaswinder.singh@linaro.org>
To: "Williams, Dan J" <dan.j.williams@intel.com>
Cc: Russell King <rmk@arm.linux.org.uk>,
	Barry Song <21cnbao@gmail.com>, Vinod Koul <vinod.koul@intel.com>,
	linux-kernel@vger.kernel.org,
	DL-SHA-WorkGroupLinux <workgroup.linux@csr.com>,
	Dave Jiang <dave.jiang@intel.com>
Subject: Re: [PATCHv4] DMAEngine: Define interleaved transfer request api
Date: Mon, 3 Oct 2011 23:53:08 +0530	[thread overview]
Message-ID: <CAJe_Zhc2hY0dZRRZrZMzrasnvZ-+c32gB2oaGdK0mtA6GcOQew@mail.gmail.com> (raw)
In-Reply-To: <CABE8wwshrNc3dmzZ+nXSA4ZXO5OgvNwEApKTGW4ieSKu_YC5sw@mail.gmail.com>

On 3 October 2011 22:45, Williams, Dan J <dan.j.williams@intel.com> wrote:
> On Mon, Oct 3, 2011 at 9:19 AM, Jassi Brar <jaswinder.singh@linaro.org> wrote:
>> On 3 October 2011 21:43, Russell King <rmk@arm.linux.org.uk> wrote:
>>> On Mon, Oct 03, 2011 at 11:54:23AM +0530, Jassi Brar wrote:
>>>> On 2 October 2011 06:03, Barry Song <21cnbao@gmail.com> wrote:
>>>> > 2011/10/2 Jassi Brar <jaswinder.singh@linaro.org>
>>>>
>>>> >> > For example, it can't use
>>>> >> > MEM_TO_MEM to map, it still need to know whether the memory is source
>>>> >> > or dest.
>>>> >> MEM_TO_MEM means "From Memory Source To Memory Destination"
>>>> >>  Map Src buffer with DMA_TO_DEVICE and Dst buffer with DMA_FROM_DEVICE
>>>> >>
>>>> >> MEM_TO_DEV means "From Memory Source To FIFO Destination"
>>>> >>  Map Src buffer with DMA_TO_DEVICE.
>>>> >>
>>>> >> DEV_TO_MEM means "From FIFO Source To Memory Destination"
>>>> >>  Map Dst buffer with DMA_FROM_DEVICE
>>>> >>
>>>> >> DEV_TO_DEV means "From FIFO Source To FIFO Destination"
>>>> >>
>>>> >> What else would you want to know ?
>>>> >
>>>> > that is the problem. for example, drivers can't use MEM_TO_MEM as a
>>>> > flag to do dma mapping. so xfer_direction can't cover all that
>>>> > dma_data_direction can do.  that's why you need both
>>>> > dma_data_direction and xfer_direction with some similar flags in them.
>>>> >
>>>> The client drivers map the src/dst buffers and the dmac driver unmaps
>>>> them by default(!). For which, the dmac driver doesn't look at anything
>>>> other than
>>>>      DMA_COMPL_SKIP_SRC/DST_UNMAP
>>>>      DMA_COMPL_SRC/DST_UNMAP_SINGLE
>>>>   bits of 'enum dma_ctrl_flags'.
>>>> For this unmap'ing purpose, the usage of dma_data_direction is already
>>>> internal to the dmac driver.
>>>
>>> No.  Slave DMA engine drivers do *not* (and if they do, they should *not*)
>>> honour the unmapping of submitted buffers.
>>>
>>> The unmapping of these buffers by the DMA engine driver is intended to be
>>> done for the async_tx API and not slave DMA.
>>>
>> The proposed api is usable by both Slave as well as Async(Memcpy etc).
>> So it *does* matter here.
>
> I think the confusion is reduced if you don't try to use this api for
> mem-to-mem transfers.  Then you can use DMA_NONE to indicate the
> dev-to-dev case.  If a mem-to-mem user arrives we can revisit
> xfer_direction, but as it stands it seems this is primarily useful for
> slave-dma, i.e. I don't see async_tx_dma or net_dma switching to this
> scheme anytime soon, if ever.  Are there other mem-to-mem use cases
> that would use this?
>
As a matter of fact, I personally ever only needed such api for MemToMem
- converting a peculiar YUV arrangement to a more 'normal' one using PL330.
Barry's is the first real Slave requirement I came across(not to mean I wasn't
expecting).
So IMO, limiting the api to only Slave, is not much better than having Vendor
specific api because chances are we might not see another 'interleaved' user
of it real soon.


> Also in dmaxfer_template I do not understand the need for src_inc and
> dst_inc.  Aren't those properties that the client would know about the
> slave device?
>
You are assuming only Slave usage.
src_inc/dst_inc are mainly for 'Memset' type operation.
In Slave transfer they would help avoid allocating full length RX buffer
when the client only wants to send data but the controller works
only in full-duplex and vice-versa (thanks to RMK for pointing the case,
and I remember S3C24XX do have such SPI controller).
More generally when one needs to transmit the same data, or discard
the received data, for a certain period of time.

Good to have you in the discussion.

  reply	other threads:[~2011-10-03 18:23 UTC|newest]

Thread overview: 121+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-12 11:14 [PATCH] DMAEngine: Define generic transfer request api Jassi Brar
2011-08-16 12:56 ` Koul, Vinod
2011-08-16 13:06   ` Linus Walleij
2011-08-19 13:43     ` Koul, Vinod
2011-08-19 14:19       ` Linus Walleij
2011-08-19 15:46         ` Jassi Brar
2011-08-19 17:28           ` Koul, Vinod
2011-08-19 18:45             ` Jassi Brar
2011-08-23 14:43       ` Matt Porter
2011-08-23 14:43         ` Matt Porter
2011-08-16 14:32   ` Jassi Brar
2011-09-15  7:46 ` [PATCHv2] " Jassi Brar
2011-09-15  8:22   ` Russell King
2011-09-15 10:02     ` Jassi Brar
2011-09-16  7:17   ` Barry Song
2011-09-16 11:03     ` Jassi Brar
2011-09-16  9:07   ` Vinod Koul
2011-09-16 12:30     ` Jassi Brar
2011-09-16 17:06       ` Vinod Koul
2011-09-16 17:51         ` Jassi Brar
2011-09-19  3:23           ` Vinod Koul
2011-09-20 12:12   ` [PATCHv3] DMAEngine: Define interleaved " Jassi Brar
2011-09-20 16:52     ` Vinod Koul
2011-09-20 18:08       ` Jassi Brar
2011-09-21  6:32         ` Vinod Koul
2011-09-21  6:45           ` Jassi Brar
2011-09-21  6:51             ` Vinod Koul
2011-09-21  7:31               ` Jassi Brar
2011-09-21 10:18                 ` Russell King
2011-09-21 15:21                   ` Jassi Brar
2011-09-28  6:39     ` [PATCHv4] " Jassi Brar
2011-09-28  9:03       ` Vinod Koul
2011-09-28 15:15         ` Jassi Brar
2011-09-29 11:17           ` Vinod Koul
2011-09-30  6:43             ` Barry Song
2011-09-30 16:01               ` Jassi Brar
2011-10-01  3:05                 ` Barry Song
2011-10-01 18:11                   ` Vinod Koul
2011-10-01 18:45                     ` Jassi Brar
2011-10-01 18:41                   ` Jassi Brar
2011-10-01 18:48                     ` Jassi Brar
2011-10-02  0:33                     ` Barry Song
2011-10-03  6:24                       ` Jassi Brar
2011-10-03 16:13                         ` Russell King
2011-10-03 16:19                           ` Jassi Brar
2011-10-03 17:15                             ` Williams, Dan J
2011-10-03 18:23                               ` Jassi Brar [this message]
2011-10-05 18:19                                 ` Williams, Dan J
2011-10-06  9:06                                   ` Jassi Brar
2011-10-05 18:14                             ` Williams, Dan J
2011-10-06  7:12                               ` Jassi Brar
2011-10-07  5:45                               ` Vinod Koul
2011-10-07 11:27                                 ` Jassi Brar
2011-10-07 14:19                                   ` Vinod Koul
2011-10-07 14:38                                     ` Jassi Brar
2011-10-10  6:53                                       ` Vinod Koul
2011-10-10  9:16                                         ` Jassi Brar
2011-10-10  9:18                                           ` Vinod Koul
2011-10-10  9:53                                             ` Jassi Brar
2011-10-10 10:45                                               ` Vinod Koul
2011-10-10 11:16                                                 ` Jassi Brar
2011-10-10 16:02                                                   ` Vinod Koul
2011-10-10 16:28                                                     ` Jassi Brar
2011-10-11 11:56                                                       ` Vinod Koul
2011-10-11 15:57                                                         ` Jassi Brar
2011-10-11 16:45                                                           ` Vinod Koul
2011-10-12  5:41                                                       ` Barry Song
2011-10-12  6:19                                                         ` Vinod Koul
2011-10-12  6:30                                                           ` Jassi Brar
2011-10-12  6:53                                                           ` Barry Song
2011-10-11 16:44                                   ` Williams, Dan J
2011-10-11 18:42                                     ` Jassi Brar
2011-10-14 18:11                                       ` Bounine, Alexandre
2011-10-14 17:50                                     ` Bounine, Alexandre
2011-10-14 18:36                                       ` Jassi Brar
2011-10-14 19:15                                         ` Bounine, Alexandre
2011-10-15 11:25                                           ` Jassi Brar
2011-10-17 14:07                                             ` Bounine, Alexandre
2011-10-17 15:16                                               ` Jassi Brar
2011-10-17 18:00                                                 ` Bounine, Alexandre
2011-10-17 19:29                                                   ` Jassi Brar
2011-10-17 21:07                                                     ` Bounine, Alexandre
2011-10-18  5:45                                                       ` Jassi Brar
2011-10-18  7:42                                                         ` Russell King
2011-10-18  8:30                                                           ` Jassi Brar
2011-10-18  8:26                                                             ` Vinod Koul
2011-10-18  8:37                                                               ` Jassi Brar
2011-10-18 14:44                                                                 ` Bounine, Alexandre
2011-10-18  9:49                                                             ` Russell King
2011-10-18 11:50                                                               ` Jassi Brar
2011-10-18 11:59                                                                 ` Russell King
2011-10-18 17:57                                                                 ` Bounine, Alexandre
2011-10-24  3:49                                                                   ` Vinod Koul
2011-10-24 12:36                                                                     ` Bounine, Alexandre
2011-10-24 15:27                                                                       ` Vinod Koul
2011-10-18 17:26                                                               ` Bounine, Alexandre
2011-10-18 17:35                                                                 ` Russell King
2011-10-18 17:53                                                                   ` Jassi Brar
2011-10-18 13:51                                                         ` Bounine, Alexandre
2011-10-18 14:54                                                           ` Jassi Brar
2011-10-18 15:15                                                             ` Bounine, Alexandre
2011-09-30 15:47             ` Jassi Brar
2011-10-13  7:03       ` [PATCHv5] " Jassi Brar
2011-10-14  7:32         ` Barry Song
2011-10-14 11:51           ` Jassi Brar
2011-10-14 13:31             ` Vinod Koul
2011-10-14 13:51               ` Jassi Brar
2011-10-14 14:05                 ` Vinod Koul
2011-10-14 14:18                   ` Vinod Koul
2011-10-14 14:55               ` Barry Song
2011-10-14 15:06                 ` Vinod Koul
2011-10-14 15:38                   ` Barry Song
2011-10-14 16:09                     ` Vinod Koul
2011-10-14 16:35                   ` Jassi Brar
2011-10-14 17:04                     ` Vinod Koul
2011-10-14 17:59                       ` Jassi Brar
2011-10-15 17:11                         ` Vinod Koul
2011-10-14 15:16         ` Vinod Koul
2011-10-14 15:50           ` Barry Song
2011-10-16 11:16           ` Jassi Brar
2011-10-16 12:16             ` Vinod Koul

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=CAJe_Zhc2hY0dZRRZrZMzrasnvZ-+c32gB2oaGdK0mtA6GcOQew@mail.gmail.com \
    --to=jaswinder.singh@linaro.org \
    --cc=21cnbao@gmail.com \
    --cc=dan.j.williams@intel.com \
    --cc=dave.jiang@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rmk@arm.linux.org.uk \
    --cc=vinod.koul@intel.com \
    --cc=workgroup.linux@csr.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.