Re: [PATCH 26/40] dmaengine: sh_rcar-dmac: convert callback to helper function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux PCI]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux