Re: [PATCH/RFC] dmaengine: add a slave parameter to __dma_request_channel()

From: Guennadi Liakhovetski
Date: Mon Mar 19 2012 - 09:38:28 EST


On Mon, 19 Mar 2012, Vinod Koul wrote:

> On Mon, 2012-03-19 at 12:47 +0100, Guennadi Liakhovetski wrote:
> > As I wrote in a reply to Linus W - you need to pass information about the
> > requesting client to the dmaengine core to let it match it against mapping
> > tables.
> NO.
> The client only needs to say that he needs a channel for DMA_SLAVE

How?

dma_request_channel(mask, filter_fn, filter_arg)

Where shall the client pass to dmaengine its identity info?

> DMAengine will know for this client, the platform channel map (already
> given to it by platform) says that we can give it DMAC X, channel 4
> only.

Some clients need multiple channels - Tx, Rx,...

Thanks
Guennadi

> So see if it free, if so allocate it and give to client (while
> doing usual stuff)
> > You have to pass this information with the dma_request_channel()
> > function. So, either you need to add a parameter or you have to reuse one
> > of existing ones, e.g., deprecate the filter and use its argument for this
> > purpose. If you do this and as long as you pass that parameter further on
> > to the dmaengine device (controller) driver after whatever matching you
> > like to do in the core - I'm fine with that, that fits well with my
> > initial proposal.
> I don't care about filter, it can go away if it is not required.
>
> Passing slave_config is *enhancement* so for (hopefully) last time
> a) it has *nothing* to do with getting a channel, no role to play in
> generic scheme of things
> b) it allows client to call one api for get+configure thats all!
>
> --
> ~Vinod
>

---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/