Thread (43 messages) 43 messages, 6 authors, 2018-07-31

[RFC 2/6] dmaengine: xilinx_dma: Pass AXI4-Stream control words to netdev dma client

From: Radhey Shyam Pandey <hidden>
Date: 2018-05-30 17:29:58
Also in: dmaengine, lkml

Hi,
-----Original Message-----
From: Peter Ujfalusi [mailto:peter.ujfalusi at ti.com]
Sent: Tuesday, May 29, 2018 8:35 PM
To: Radhey Shyam Pandey <redacted>; Vinod Koul
[off-list ref]
Cc: Lars-Peter Clausen <lars@metafoo.de>; michal.simek at xilinx.com; linux-
kernel at vger.kernel.org; dmaengine at vger.kernel.org;
dan.j.williams at intel.com; Appana Durga Kedareswara Rao
[off-list ref]; linux-arm-kernel at lists.infradead.org
Subject: Re: [RFC 2/6] dmaengine: xilinx_dma: Pass AXI4-Stream control words
to netdev dma client

Hi,

On 2018-05-17 09:39, Radhey Shyam Pandey wrote:
quoted
quoted
Well, let's see where this is going to go when I can send the patches
for review.
Thanks all. @Peter: If we have metadata patchset ready may be good
to send an RFC?
Sorry for the delay, I got distracted by this:
http://www.ti.com/lit/pdf/spruid7 Chapter 10.

I have given some tough to the metadata attach patches.
In my case the 'metadata' is more like private data section within the
DMA descriptor (10.1.2.2.1) which is used by the remote peripheral and
the driver for the given peripheral and it is optional.

I liked the idea of treating it as metadata as it gives more generic API
which can be adopted by other drivers if they need something similar.

Another issue I have with the attach metadata way is that it would
require one memcpy to copy the data to the DMA descriptor and in high
throughput case it is not acceptable.
I think memcpy is needed (alternative?) if dma engine doesn?t directly
update metadata buffers i.e in RX, we need to copy metadata from 
dma descriptor fields to client allocated metadata buffer (sideband/
metadata info is part of Buffer descriptor fields) 

memcpy(app_w, hw->app, sizeof(u32) * XILINX_DMA_NUM_APP_WORDS);

Descriptor Fields
Address Space               Offset          Name Description
20h                                  APP0           User Application Field 0
24h                                  APP1           User Application Field 1
...
30h                                 APP5           User Application Field 5
For me probably a .get_private_area / .put_private_area like API would
be desirable where I can give the pointer of the 'metadata' are (and
size) to the user.

But these can co-exist in my opinion and DMA drivers can opt to
implement none, either or both of the callbacks.

In couple of days I can update the metadata patches I have atm and send
as RFC.

Is there anything from your side I should take into account when doing that?
I think a generic interface to attach/share metadata buffer b/w client and the
dmaengine driver is good enough. Is metadata patchset (early version) 
available in TI external repos? 

Thanks,
Radhey
- P?ter

Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help