linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: vinod.koul@intel.com (Vinod Koul)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2] dma: Add Xilinx AXI Video Direct Memory Access Engine driver support
Date: Sun, 26 Jan 2014 19:29:33 +0530	[thread overview]
Message-ID: <20140126135933.GD10628@intel.com> (raw)
In-Reply-To: <52E2698B.6070001@metafoo.de>

On Fri, Jan 24, 2014 at 02:24:27PM +0100, Lars-Peter Clausen wrote:
> On 01/24/2014 12:16 PM, Srikanth Thokala wrote:
> > Hi Lars,
> > 
> > On Thu, Jan 23, 2014 at 4:55 PM, Lars-Peter Clausen <lars@metafoo.de> wrote:
> >> On 01/22/2014 05:52 PM, Srikanth Thokala wrote:
> >> [...]
> >>> +/**
> >>> + * xilinx_vdma_device_control - Configure DMA channel of the device
> >>> + * @dchan: DMA Channel pointer
> >>> + * @cmd: DMA control command
> >>> + * @arg: Channel configuration
> >>> + *
> >>> + * Return: '0' on success and failure value on error
> >>> + */
> >>> +static int xilinx_vdma_device_control(struct dma_chan *dchan,
> >>> +                                   enum dma_ctrl_cmd cmd, unsigned long arg)
> >>> +{
> >>> +     struct xilinx_vdma_chan *chan = to_xilinx_chan(dchan);
> >>> +
> >>> +     switch (cmd) {
> >>> +     case DMA_TERMINATE_ALL:
> >>> +             xilinx_vdma_terminate_all(chan);
> >>> +             return 0;
> >>> +     case DMA_SLAVE_CONFIG:
> >>> +             return xilinx_vdma_slave_config(chan,
> >>> +                                     (struct xilinx_vdma_config *)arg);
> >>
> >> You really shouldn't be overloading the generic API with your own semantics.
> >> DMA_SLAVE_CONFIG should take a dma_slave_config and nothing else.
> > 
> > Ok.  The driver needs few additional configuration from the slave
> > device like Vertical
> > Size, Horizontal Size,  Stride etc., for the DMA transfers, in that case do you
> > suggest me to define a separate dma_ctrl_cmd like the one FSLDMA_EXTERNAL_START
> > defined for Freescale drivers?
> 
> In my opinion it is not a good idea to have driver implement a generic API,
> but at the same time let the driver have custom semantics for those API
> calls. It's a bit like having a gpio driver that expects 23 and 42 as the
> values passed to gpio_set_value instead of 0 and 1. It completely defeats
> the purpose of a generic API, namely that you are able to write generic code
> that makes use of the API without having to know about which implementation
> API it is talking to. The dmaengine framework provides the
> dmaengine_prep_interleaved_dma() function to setup two dimensional
> transfers, e.g. take a look at sirf-dma.c or imx-dma.c.

The question here i think would be waht this device supports? Is the hardware
capable of doing interleaved transfers, then would make sense.

While we do try to get users use dma_slave_config, but there will always be
someone who have specfic params. If we can generalize then we might want to add
to the dma_slave_config as well

--
~Vinod

  reply	other threads:[~2014-01-26 13:59 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-22 16:52 [PATCH v2] Add Xilinx AXI Video DMA Engine driver Srikanth Thokala
2014-01-22 16:52 ` [PATCH v2] dma: Add Xilinx AXI Video Direct Memory Access Engine driver support Srikanth Thokala
2014-01-22 21:30   ` Levente Kurusa
2014-01-23 17:35     ` Srikanth Thokala
2014-01-23 11:25   ` Lars-Peter Clausen
2014-01-23 13:38     ` Shevchenko, Andriy
2014-01-23 13:50       ` Lars-Peter Clausen
2014-01-23 14:00         ` Andy Shevchenko
2014-01-23 14:07           ` Lars-Peter Clausen
2014-01-26 14:03             ` Vinod Koul
2014-01-26 17:41               ` Lars-Peter Clausen
2014-01-24 11:16     ` Srikanth Thokala
2014-01-24 13:24       ` Lars-Peter Clausen
2014-01-26 13:59         ` Vinod Koul [this message]
2014-01-26 17:39           ` Lars-Peter Clausen
2014-01-27 13:12             ` Srikanth Thokala
2014-01-28  3:13               ` Vinod Koul
2014-01-31  6:51                 ` Srikanth Thokala
2014-02-05 16:25                   ` Srikanth Thokala
2014-02-05 16:30                     ` Lars-Peter Clausen
2014-02-06 13:34                       ` Srikanth Thokala
2014-02-06 15:53                         ` Lars-Peter Clausen
2014-02-10 12:51                           ` Srikanth Thokala
2014-01-28  3:09             ` Vinod Koul
2014-01-27 11:06           ` Srikanth Thokala
2014-01-31  6:52             ` Srikanth Thokala
2014-02-04  5:28               ` Vinod Koul
2014-02-04 10:35                 ` Srikanth Thokala
2014-01-31 17:44         ` Andy Gross
2014-02-01 18:23           ` Lars-Peter Clausen
2014-01-23 13:32   ` Andy Shevchenko
2014-01-23 17:52     ` Srikanth Thokala
2014-01-26 14:24   ` Vinod Koul
2014-01-26 17:46     ` Lars-Peter Clausen

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=20140126135933.GD10628@intel.com \
    --to=vinod.koul@intel.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).