On 11/07/2016 08:55 PM, Arnd Bergmann wrote:
quoted
diff --git a/drivers/dma/amba-pl08x.c b/drivers/dma/amba-pl08x.c
quoted
index d5c75c8..0d1eb2e 100644
--- a/drivers/dma/amba-pl08x.c
+++ b/drivers/dma/amba-pl08x.c
@@ -1793,6 +1793,23 @@ bool pl08x_filter_id(struct dma_chan *chan, void *chan_id)
}
[...]
quoted
quoted
+static bool pl08x_filter_fn(struct dma_chan *chan, void *chan_id)
+{
+ struct pl08x_dma_chan *plchan;
[...]
quoted
quoted
+ plchan = to_pl08x_chan(chan);
+
+ /* Check that the channel is not taken! */
+ if (plchan->cd == chan_id)
+ return true;
What I had in mind was a bit different: Instead of comparing the
channel, I was thinking of modifying the channel itself, something
like:
plchan->signal = chan_id->signal;
plchan->periph_buses = chan_id->periph_buses;
after that, remove the plchan->cd data. Unfortunately, the muxing in
arch/arm/mach-spear/ makes this a bit harder. I'd have to think
about it some more. It may be easier to do this after moving
spear and lpc32xx over to use dma_slave_map.
I've posted updated version of this patch, please let me know
if you have any further comments.
--
Thanks,
Sylwester