RE: [RFC 2/6] dmaengine: xilinx_dma: Pass AXI4-Stream control words to netdev dma client
From: Radhey Shyam Pandey
Date: Wed May 30 2018 - 13:30:01 EST
Hi,
> -----Original Message-----
> From: Peter Ujfalusi [mailto:peter.ujfalusi@xxxxxx]
> Sent: Tuesday, May 29, 2018 8:35 PM
> To: Radhey Shyam Pandey <radheys@xxxxxxxxxx>; Vinod Koul
> <vinod.koul@xxxxxxxxx>
> Cc: Lars-Peter Clausen <lars@xxxxxxxxxx>; michal.simek@xxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx; dmaengine@xxxxxxxxxxxxxxx;
> dan.j.williams@xxxxxxxxx; Appana Durga Kedareswara Rao
> <appanad@xxxxxxxxxx>; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
> 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:
> >> 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