Hello Vinod! On Thu, 2024-03-28 at 10:01 +0530, Vinod Koul wrote: > On 26-03-24, 12:18, Nikita Shubin via B4 Relay wrote: > > From: Nikita Shubin <nikita.shubin@xxxxxxxxxxx> > > > > Convert Cirrus EP93xx DMA to device tree usage: > > Subsytem is dmaengine: pls fix that > > > > > - add OF ID match table with data > > - add of_probe for device tree > > - add xlate for m2m/m2p > > - drop subsys_initcall code > > - drop platform probe > > - drop platform structs usage > > > > > From now on it only supports device tree probing. > > > > Co-developed-by: Alexander Sverdlin <alexander.sverdlin@xxxxxxxxx> > > Signed-off-by: Alexander Sverdlin <alexander.sverdlin@xxxxxxxxx> > > Signed-off-by: Nikita Shubin <nikita.shubin@xxxxxxxxxxx> > > --- > > drivers/dma/ep93xx_dma.c | 239 ++++++++++++++++++++++++------- > > include/linux/platform_data/dma-ep93xx.h | 6 + > > 2 files changed, 191 insertions(+), 54 deletions(-) > > > > diff --git a/drivers/dma/ep93xx_dma.c b/drivers/dma/ep93xx_dma.c > > index d6c60635e90d..17c8e2badee2 100644 > > --- a/drivers/dma/ep93xx_dma.c > > +++ b/drivers/dma/ep93xx_dma.c [...] > > > > @@ -104,6 +106,11 @@ > > #define DMA_MAX_CHAN_BYTES 0xffff > > #define DMA_MAX_CHAN_DESCRIPTORS 32 > > > > +enum ep93xx_dma_type { > > + M2P_DMA, > > Is this missing P2M? Not really. It's not the most obvious one, but anyway a way to enumerate two types of DMA engines: "7.1.1 DMA Features List DMA specific features are: • Ten fully independent, programmable DMA controller internal M2P/P2M channels (5 Tx and 5 Rx). • Two dedicated channels for Memory-to-Memory (M2M) and Memory-to-External Peripheral Transfers (external M2P/P2M)." Now the confusing part is that this "M2M" engine is actually used to transfer to and from *some* devices, like SPI and IDE. So both engines are capable of M2P and P2M, maybe Cirrus has named two engines in a sub-optimal way decades ago and this is now a bit historical naming. > > + M2M_DMA, > > +}; -- Alexander Sverdlin.