On 2017-08-21 12:34, Pierre Yves MORDRET wrote: > OK. I will redesign my driver to take into account this idea. > > I believe I should get rid of my custom API in DMA for channelID as well. > Please > confirm. Not very clear for me whether I can keep it or not.
Yes, you should be able to get rid of any custom API. The DMA event router should be 'invisible' to both the DMA driver itself and for the DMA users as well. If you end up still needing custom API (which I doubt) then it is better to extend the core support to cover that in a generic way since it is likely that other might have similar needs. You need to identify what you need to manage with the DMA router, again in my cases: am335x/am437x: The DMA channel is fixed, but the DMA event to be handled by the channel (DMA event muxer) is selected by the router. dra7x: The DMA event is the fixed part and I needed to translate that to local eDMA/sDMA events and in eDMA I needed to pick a channel based on the translated event. The same router code works for eDMA and sDMA in dra7, while the two DMA engines are different in their internal works. At the end of the day I only needed to plug the DMA event routers and there is no change in the DMA drivers at all. I'm happy to answer any questions you might have, if I can. - Péter