Hi Dave, On Friday 15 Jul 2016 20:15:39 Jiang, Dave wrote: > On Fri, 2016-07-15 at 14:45 +0530, Vinod Koul wrote: > > On Fri, Jul 15, 2016 at 10:10:29AM +0300, Laurent Pinchart wrote: > > > On Thursday 14 Jul 2016 14:59:11 Dave Jiang wrote: > > > > Convert driver to use the new helper function for callback > > > > > > > > Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx> > > > > --- > > > > drivers/dma/sh/rcar-dmac.c | 14 ++++++-------- > > > > 1 file changed, 6 insertions(+), 8 deletions(-) > > > > > > > > diff --git a/drivers/dma/sh/rcar-dmac.c b/drivers/dma/sh/rcar- > > > > dmac.c > > > > index dfb1792..ca39265 100644 > > > > --- a/drivers/dma/sh/rcar-dmac.c > > > > +++ b/drivers/dma/sh/rcar-dmac.c > > > > @@ -1356,21 +1356,18 @@ static irqreturn_t > > > > rcar_dmac_isr_channel_thread(int > > > > irq, void *dev) { > > > > struct rcar_dmac_chan *chan = dev; > > > > struct rcar_dmac_desc *desc; > > > > + struct dma_desc_callback cb; > > > > > > > > spin_lock_irq(&chan->lock); > > > > /* For cyclic transfers notify the user after every > > > > chunk. */ > > > > if (chan->desc.running && chan->desc.running->cyclic) { > > > > - dma_async_tx_callback callback; > > > > - void *callback_param; > > > > - > > > > desc = chan->desc.running; > > > > - callback = desc->async_tx.callback; > > > > - callback_param = desc->async_tx.callback_param; > > > > + dmaengine_desc_get_callback(&desc->async_tx, > > > > &cb); > > > > > > > > - if (callback) { > > > > + if (cb->callback) { > > > > > > /home/laurent/src/iob/renesas/linux/drivers/dma/sh/rcar-dmac.c: In > > > function ‘rcar_dmac_isr_channel_thread’: > > > /home/laurent/src/iob/renesas/linux/drivers/dma/sh/rcar- > > > dmac.c:1368:9: error: invalid type argument of ‘->’ (have ‘struct > > > dma_desc_callback’) > > > /home/laurent/src/iob/renesas/linux/scripts/Makefile.build:295: > > > recipe for target 'drivers/dma/sh/rcar-dmac.o' failed > > > make[4]: *** [drivers/dma/sh/rcar-dmac.o] Error 1 > > > make[4]: *** Waiting for unfinished jobs.... > > > > > > Given that two of the two drivers I tried to compile failed, I > > > think you should really get an ARM cross-compiler to test the series. > > > They're quite widely available nowadays :-) > > > > :-) > > > > And am surprised why Fengguang's bot didn't pick this up. > > Fengguang..? > > > > Btw I use crosstool [1] to compile not just arm, but mips and ppc > > ones in dmaengine. > > > > Even in arm, compile is bit painful, bunch of drivers need special > > arch configs to be able to compile. Multi doesn't seem to compile > > everything. Right now I have 5-6 to compile all arm drivers.. :( Do those drivers really require special configurations to compile, or do they depend on them in Kconfig without really requiring them ? In the latter case you could add a dependency on COMPILE_TEST. For instance RCAR_DMAC depends on ARCH_RENESAS || COMPILE_TEST, so you can compile it if you enable COMPILE_TEST. > > [1]: https://www.kernel.org/pub/tools/crosstool/files/bin/x86_64/ > > And there are PPC drivers as well I think. Almost 40 drivers touched > makes it really painful. And so you want to distribute the pain to all DMA engine driver developers ? ;-) On a more serious note, I of course don't ask for full coverage, but given the large number of compilation failures reported, a reasonable effort would be worth it. -- Regards, Laurent Pinchart -- To unsubscribe from this list: send the line "unsubscribe dmaengine" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html