From: lars@metafoo.de (Lars-Peter Clausen)
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 18:39:21 +0100 [thread overview]
Message-ID: <52E54849.2000208@metafoo.de> (raw)
In-Reply-To: <20140126135933.GD10628@intel.com>
On 01/26/2014 02:59 PM, Vinod Koul wrote:
> 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.
The hardware does 2D transfers. The parameters for a transfer are height,
width and stride. That's only a subset of what interleaved transfers can be
(xt->num_frames must be one for 2d transfers). But if I remember correctly
there has been some discussion on this in the past and the result of that
discussion was that using interleaved transfers for 2D transfers is
preferred over adding a custom API for 2D transfers.
- Lars
next prev parent reply other threads:[~2014-01-26 17:39 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
2014-01-26 17:39 ` Lars-Peter Clausen [this message]
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=52E54849.2000208@metafoo.de \
--to=lars@metafoo.de \
--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).