diff mbox

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

Message ID 146853355115.12248.9093916202286597901.stgit@djiang5-desk3.ch.intel.com (mailing list archive)
State Changes Requested
Headers show

Commit Message

Dave Jiang July 14, 2016, 9:59 p.m. UTC
Convert driver to use the new helper function for callback

Signed-off-by: Dave Jiang <dave.jiang@intel.com>
---
 drivers/dma/sh/rcar-dmac.c |   14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)


--
To unsubscribe from this list: send the line "unsubscribe dmaengine" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Laurent Pinchart July 15, 2016, 7:10 a.m. UTC | #1
Hi Dave,

Thank you for the patch.

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@intel.com>
> ---
>  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 :-)

>  			spin_unlock_irq(&chan->lock);
> -			callback(callback_param);
> +			dmaengine_desc_callback_invoke(&cb, NULL);
>  			spin_lock_irq(&chan->lock);
>  		}
>  	}
> @@ -1392,7 +1389,8 @@ static irqreturn_t rcar_dmac_isr_channel_thread(int
> irq, void *dev) * safely dereference it without holding the channel
>  			 * lock.
>  			 */
> -			desc->async_tx.callback(desc-
>async_tx.callback_param);
> +			dmaengine_desc_get_callback(&desc->async_tx, &cb);
> +			dmaengine_desc_callback_invoke(&cb, NULL);
>  			spin_lock_irq(&chan->lock);
>  		}
Vinod Koul July 15, 2016, 9:15 a.m. UTC | #2
On Fri, Jul 15, 2016 at 10:10:29AM +0300, Laurent Pinchart wrote:
> Hi Dave,
> 
> Thank you for the patch.
> 
> 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@intel.com>
> > ---
> >  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.. :(

[1]: https://www.kernel.org/pub/tools/crosstool/files/bin/x86_64/
Fengguang Wu July 15, 2016, 9:21 a.m. UTC | #3
On Fri, Jul 15, 2016 at 02:45:20PM +0530, Vinod Koul wrote:
>On Fri, Jul 15, 2016 at 10:10:29AM +0300, Laurent Pinchart wrote:
>> Hi Dave,
>>
>> Thank you for the patch.
>>
>> 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@intel.com>
>> > ---
>> >  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..?

Sorry 0day bot doesn't see that build error. In which tree/branch does
it happen?

>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.. :(
>
>[1]: https://www.kernel.org/pub/tools/crosstool/files/bin/x86_64/

I'm using crosstool too, when there are no debian cross gcc available.
I'm using these debian gcc packages:

gcc-sh4-linux-gnu
gcc-alpha-linux-gnu
gcc-hppa-linux-gnu
gcc-hppa64-linux-gnu
gcc-m68k-linux-gnu
gcc-sparc64-linux-gnu
gcc-s390x-linux-gnu
gcc-avr
gcc-arm-linux-gnueabi
gcc-arm-linux-gnueabihf
gcc-aarch64-linux-gnu
gcc-mips-linux-gnu
gcc-mipsel-linux-gnu
gcc-mips64-linux-gnuabi64
gcc-mips64el-linux-gnuabi64
gcc-powerpc-linux-gnu
gcc-powerpc64-linux-gnu
gcc-powerpc64le-linux-gnu

gcc-6-aarch64-linux-gnu
gcc-6-arm-linux-gnueabi
gcc-6-arm-linux-gnueabihf
gcc-6-hppa64-linux-gnu
gcc-6-mipsel-linux-gnu
gcc-6-mips-linux-gnu
gcc-6-multilib-mipsel-linux-gnu
gcc-6-multilib-mips-linux-gnu
gcc-6-multilib-powerpc-linux-gnu
gcc-6-multilib-s390x-linux-gnu
gcc-6-powerpc64le-linux-gnu
gcc-6-powerpc-linux-gnu
gcc-6-s390x-linux-gnu


Thanks,
Fengguang
--
To unsubscribe from this list: send the line "unsubscribe dmaengine" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Vinod Koul July 15, 2016, 9:37 a.m. UTC | #4
On Fri, Jul 15, 2016 at 05:21:27PM +0800, Fengguang Wu wrote:
> On Fri, Jul 15, 2016 at 02:45:20PM +0530, Vinod Koul wrote:
> >On Fri, Jul 15, 2016 at 10:10:29AM +0300, Laurent Pinchart wrote:
> >>Hi Dave,
> >>
> >>Thank you for the patch.
> >>
> >>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@intel.com>
> >>> ---
> >>>  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..?
> 
> Sorry 0day bot doesn't see that build error. In which tree/branch does
> it happen?

My dmaengine tree, I dont think the bot ran on this patch series.
Can you check has it got disabled somehow for dmaengine list..

> 
> >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.. :(
> >
> >[1]: https://www.kernel.org/pub/tools/crosstool/files/bin/x86_64/
> 
> I'm using crosstool too, when there are no debian cross gcc available.
> I'm using these debian gcc packages:
> 
> gcc-sh4-linux-gnu
> gcc-alpha-linux-gnu
> gcc-hppa-linux-gnu
> gcc-hppa64-linux-gnu
> gcc-m68k-linux-gnu
> gcc-sparc64-linux-gnu
> gcc-s390x-linux-gnu
> gcc-avr
> gcc-arm-linux-gnueabi
> gcc-arm-linux-gnueabihf
> gcc-aarch64-linux-gnu
> gcc-mips-linux-gnu
> gcc-mipsel-linux-gnu
> gcc-mips64-linux-gnuabi64
> gcc-mips64el-linux-gnuabi64
> gcc-powerpc-linux-gnu
> gcc-powerpc64-linux-gnu
> gcc-powerpc64le-linux-gnu
> 
> gcc-6-aarch64-linux-gnu
> gcc-6-arm-linux-gnueabi
> gcc-6-arm-linux-gnueabihf
> gcc-6-hppa64-linux-gnu
> gcc-6-mipsel-linux-gnu
> gcc-6-mips-linux-gnu
> gcc-6-multilib-mipsel-linux-gnu
> gcc-6-multilib-mips-linux-gnu
> gcc-6-multilib-powerpc-linux-gnu
> gcc-6-multilib-s390x-linux-gnu
> gcc-6-powerpc64le-linux-gnu
> gcc-6-powerpc-linux-gnu
> gcc-6-s390x-linux-gnu
> 
>
Fengguang Wu July 15, 2016, 9:37 a.m. UTC | #5
On Fri, Jul 15, 2016 at 03:07:21PM +0530, Vinod Koul wrote:
>On Fri, Jul 15, 2016 at 05:21:27PM +0800, Fengguang Wu wrote:
>> On Fri, Jul 15, 2016 at 02:45:20PM +0530, Vinod Koul wrote:
>> >On Fri, Jul 15, 2016 at 10:10:29AM +0300, Laurent Pinchart wrote:
>> >>Hi Dave,
>> >>
>> >>Thank you for the patch.
>> >>
>> >>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@intel.com>
>> >>> ---
>> >>>  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..?
>>
>> Sorry 0day bot doesn't see that build error. In which tree/branch does
>> it happen?
>
>My dmaengine tree, I dont think the bot ran on this patch series.
>Can you check has it got disabled somehow for dmaengine list..

Here are the latest build notifications:

 673   F Jul 12 To Vinod Koul   ( 127:0) [slave-dma:topic/mv_xor] f1532019dd5b2a9c5b659896968626e6e8fb232e BUILD SUCCESS
 674   F Jul 12 To Vinod Koul   ( 117:0) [slave-dma:next] 600602de6b6b691e0aed20913984e4d0bf2d370d BUILD SUCCESS
 675   F Jul 12 To Vinod Koul   ( 127:0) [slave-dma:topic/xilinx] 7cdd3587b8628215f377d5d73a39540d94f33dc1 BUILD SUCCESS
 677   F Jul 12 To Vinod Koul   ( 142:0) [slave-dma:for-linus] 1d069bfa3c78c6d0285e5e370710cf7062c71308 BUILD SUCCESS
 678   F Jul 12 To Vinod Koul   ( 127:0) [slave-dma:next] 57494e833e222e0fddf4dcb53dfe70924b7bc420 BUILD SUCCESS

Thanks,
Fengguang
--
To unsubscribe from this list: send the line "unsubscribe dmaengine" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Vinod Koul July 15, 2016, 9:47 a.m. UTC | #6
On Fri, Jul 15, 2016 at 05:37:33PM +0800, Fengguang Wu wrote:
> On Fri, Jul 15, 2016 at 03:07:21PM +0530, Vinod Koul wrote:
> >>>
> >>>And am surprised why Fengguang's bot didn't pick this up. Fengguang..?
> >>
> >>Sorry 0day bot doesn't see that build error. In which tree/branch does
> >>it happen?
> >
> >My dmaengine tree, I dont think the bot ran on this patch series.
> >Can you check has it got disabled somehow for dmaengine list..
> 
> Here are the latest build notifications:
> 
> 673   F Jul 12 To Vinod Koul   ( 127:0) [slave-dma:topic/mv_xor] f1532019dd5b2a9c5b659896968626e6e8fb232e BUILD SUCCESS
> 674   F Jul 12 To Vinod Koul   ( 117:0) [slave-dma:next] 600602de6b6b691e0aed20913984e4d0bf2d370d BUILD SUCCESS
> 675   F Jul 12 To Vinod Koul   ( 127:0) [slave-dma:topic/xilinx] 7cdd3587b8628215f377d5d73a39540d94f33dc1 BUILD SUCCESS
> 677   F Jul 12 To Vinod Koul   ( 142:0) [slave-dma:for-linus] 1d069bfa3c78c6d0285e5e370710cf7062c71308 BUILD SUCCESS
> 678   F Jul 12 To Vinod Koul   ( 127:0) [slave-dma:next] 57494e833e222e0fddf4dcb53dfe70924b7bc420 BUILD SUCCESS

Ah, these are for my tree..

Don't you run them anymore on the patches coming in this dmaengine list?
Fengguang Wu July 15, 2016, 9:51 a.m. UTC | #7
On Fri, Jul 15, 2016 at 03:17:59PM +0530, Vinod Koul wrote:
>On Fri, Jul 15, 2016 at 05:37:33PM +0800, Fengguang Wu wrote:
>> On Fri, Jul 15, 2016 at 03:07:21PM +0530, Vinod Koul wrote:
>> >>>
>> >>>And am surprised why Fengguang's bot didn't pick this up. Fengguang..?
>> >>
>> >>Sorry 0day bot doesn't see that build error. In which tree/branch does
>> >>it happen?
>> >
>> >My dmaengine tree, I dont think the bot ran on this patch series.
>> >Can you check has it got disabled somehow for dmaengine list..
>>
>> Here are the latest build notifications:
>>
>> 673   F Jul 12 To Vinod Koul   ( 127:0) [slave-dma:topic/mv_xor] f1532019dd5b2a9c5b659896968626e6e8fb232e BUILD SUCCESS
>> 674   F Jul 12 To Vinod Koul   ( 117:0) [slave-dma:next] 600602de6b6b691e0aed20913984e4d0bf2d370d BUILD SUCCESS
>> 675   F Jul 12 To Vinod Koul   ( 127:0) [slave-dma:topic/xilinx] 7cdd3587b8628215f377d5d73a39540d94f33dc1 BUILD SUCCESS
>> 677   F Jul 12 To Vinod Koul   ( 142:0) [slave-dma:for-linus] 1d069bfa3c78c6d0285e5e370710cf7062c71308 BUILD SUCCESS
>> 678   F Jul 12 To Vinod Koul   ( 127:0) [slave-dma:next] 57494e833e222e0fddf4dcb53dfe70924b7bc420 BUILD SUCCESS
>
>Ah, these are for my tree..
>
>Don't you run them anymore on the patches coming in this dmaengine list?

Ah it looks no longer receiving dmaengine emails. The last ones are
5 months ago:

1013 O   Feb 15 Thomas Petazzon ( 28K:0) [PATCH] dma: mv_xor_v2: new driver
1014 O   Feb 15 kbuild test rob ( 50K:1) |->
1015 O   Feb 15 Thomas Petazzon (2.6K:0) | `->
1016 O   Feb 15 Marc Zyngier    (3.0K:0) |   `->
1017 O   Feb 15 Thomas Petazzon (0.9K:0) |     `->
1018 O   Feb 15 kbuild test rob (0.9K:0) |->
1019 O   Feb 15 kbuild test rob (0.9K:0) |->[PATCH] dma: mv_xor_v2: fix platform_no_drv_owner.cocci warnings
1020 O   Feb 15 kbuild test rob ( 62K:1) `->Re: [PATCH] dma: mv_xor_v2: new driver
1021 O L Feb 15 Robert Jarzmik  (5.6K:0) [PATCH v2 4/4] dmaengine: pxa_dma: fix the maximum requestor line

It looks sometimes the mailing list subscription will be kicked..
I'll re-subscribe.

Thanks,
Fengguang
--
To unsubscribe from this list: send the line "unsubscribe dmaengine" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Fengguang Wu July 15, 2016, 10 a.m. UTC | #8
On Fri, Jul 15, 2016 at 03:34:35PM +0530, Vinod Koul wrote:
>On Fri, Jul 15, 2016 at 05:51:27PM +0800, Fengguang Wu wrote:
>> On Fri, Jul 15, 2016 at 03:17:59PM +0530, Vinod Koul wrote:
>> >On Fri, Jul 15, 2016 at 05:37:33PM +0800, Fengguang Wu wrote:
>> >>On Fri, Jul 15, 2016 at 03:07:21PM +0530, Vinod Koul wrote:
>> >>>>>
>> >>>>>And am surprised why Fengguang's bot didn't pick this up. Fengguang..?
>> >>>>
>> >>>>Sorry 0day bot doesn't see that build error. In which tree/branch does
>> >>>>it happen?
>> >>>
>> >>>My dmaengine tree, I dont think the bot ran on this patch series.
>> >>>Can you check has it got disabled somehow for dmaengine list..
>> >>
>> >>Here are the latest build notifications:
>> >>
>> >>673   F Jul 12 To Vinod Koul   ( 127:0) [slave-dma:topic/mv_xor] f1532019dd5b2a9c5b659896968626e6e8fb232e BUILD SUCCESS
>> >>674   F Jul 12 To Vinod Koul   ( 117:0) [slave-dma:next] 600602de6b6b691e0aed20913984e4d0bf2d370d BUILD SUCCESS
>> >>675   F Jul 12 To Vinod Koul   ( 127:0) [slave-dma:topic/xilinx] 7cdd3587b8628215f377d5d73a39540d94f33dc1 BUILD SUCCESS
>> >>677   F Jul 12 To Vinod Koul   ( 142:0) [slave-dma:for-linus] 1d069bfa3c78c6d0285e5e370710cf7062c71308 BUILD SUCCESS
>> >>678   F Jul 12 To Vinod Koul   ( 127:0) [slave-dma:next] 57494e833e222e0fddf4dcb53dfe70924b7bc420 BUILD SUCCESS
>> >
>> >Ah, these are for my tree..
>> >
>> >Don't you run them anymore on the patches coming in this dmaengine list?
>>
>> Ah it looks no longer receiving dmaengine emails. The last ones are
>> 5 months ago:
>>
>> 1013 O   Feb 15 Thomas Petazzon ( 28K:0) [PATCH] dma: mv_xor_v2: new driver
>> 1014 O   Feb 15 kbuild test rob ( 50K:1) |->
>> 1015 O   Feb 15 Thomas Petazzon (2.6K:0) | `->
>> 1016 O   Feb 15 Marc Zyngier    (3.0K:0) |   `->
>> 1017 O   Feb 15 Thomas Petazzon (0.9K:0) |     `->
>> 1018 O   Feb 15 kbuild test rob (0.9K:0) |->
>> 1019 O   Feb 15 kbuild test rob (0.9K:0) |->[PATCH] dma: mv_xor_v2: fix platform_no_drv_owner.cocci warnings
>> 1020 O   Feb 15 kbuild test rob ( 62K:1) `->Re: [PATCH] dma: mv_xor_v2: new driver
>> 1021 O L Feb 15 Robert Jarzmik  (5.6K:0) [PATCH v2 4/4] dmaengine: pxa_dma: fix the maximum requestor line
>>
>> It looks sometimes the mailing list subscription will be kicked..
>> I'll re-subscribe.
>
>Ahhh thats usually the case with domain :( maybe you should subscribe
>with a non intel ID, or keep a script to check if no mail was delivered
>for a week and then resubscribe :D

Yeah it's insane.. We'll add some automated routine checks.

>I had the same issue last year, nowadays if my replies are not coming
>back, that is a pretty good indication that my ID is kicked off ...

Thanks,
Fengguang
--
To unsubscribe from this list: send the line "unsubscribe dmaengine" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Vinod Koul July 15, 2016, 10:04 a.m. UTC | #9
On Fri, Jul 15, 2016 at 05:51:27PM +0800, Fengguang Wu wrote:
> On Fri, Jul 15, 2016 at 03:17:59PM +0530, Vinod Koul wrote:
> >On Fri, Jul 15, 2016 at 05:37:33PM +0800, Fengguang Wu wrote:
> >>On Fri, Jul 15, 2016 at 03:07:21PM +0530, Vinod Koul wrote:
> >>>>>
> >>>>>And am surprised why Fengguang's bot didn't pick this up. Fengguang..?
> >>>>
> >>>>Sorry 0day bot doesn't see that build error. In which tree/branch does
> >>>>it happen?
> >>>
> >>>My dmaengine tree, I dont think the bot ran on this patch series.
> >>>Can you check has it got disabled somehow for dmaengine list..
> >>
> >>Here are the latest build notifications:
> >>
> >>673   F Jul 12 To Vinod Koul   ( 127:0) [slave-dma:topic/mv_xor] f1532019dd5b2a9c5b659896968626e6e8fb232e BUILD SUCCESS
> >>674   F Jul 12 To Vinod Koul   ( 117:0) [slave-dma:next] 600602de6b6b691e0aed20913984e4d0bf2d370d BUILD SUCCESS
> >>675   F Jul 12 To Vinod Koul   ( 127:0) [slave-dma:topic/xilinx] 7cdd3587b8628215f377d5d73a39540d94f33dc1 BUILD SUCCESS
> >>677   F Jul 12 To Vinod Koul   ( 142:0) [slave-dma:for-linus] 1d069bfa3c78c6d0285e5e370710cf7062c71308 BUILD SUCCESS
> >>678   F Jul 12 To Vinod Koul   ( 127:0) [slave-dma:next] 57494e833e222e0fddf4dcb53dfe70924b7bc420 BUILD SUCCESS
> >
> >Ah, these are for my tree..
> >
> >Don't you run them anymore on the patches coming in this dmaengine list?
> 
> Ah it looks no longer receiving dmaengine emails. The last ones are
> 5 months ago:
> 
> 1013 O   Feb 15 Thomas Petazzon ( 28K:0) [PATCH] dma: mv_xor_v2: new driver
> 1014 O   Feb 15 kbuild test rob ( 50K:1) |->
> 1015 O   Feb 15 Thomas Petazzon (2.6K:0) | `->
> 1016 O   Feb 15 Marc Zyngier    (3.0K:0) |   `->
> 1017 O   Feb 15 Thomas Petazzon (0.9K:0) |     `->
> 1018 O   Feb 15 kbuild test rob (0.9K:0) |->
> 1019 O   Feb 15 kbuild test rob (0.9K:0) |->[PATCH] dma: mv_xor_v2: fix platform_no_drv_owner.cocci warnings
> 1020 O   Feb 15 kbuild test rob ( 62K:1) `->Re: [PATCH] dma: mv_xor_v2: new driver
> 1021 O L Feb 15 Robert Jarzmik  (5.6K:0) [PATCH v2 4/4] dmaengine: pxa_dma: fix the maximum requestor line
> 
> It looks sometimes the mailing list subscription will be kicked..
> I'll re-subscribe.

Ahhh thats usually the case with domain :( maybe you should subscribe
with a non intel ID, or keep a script to check if no mail was delivered
for a week and then resubscribe :D

I had the same issue last year, nowadays if my replies are not coming
back, that is a pretty good indication that my ID is kicked off ...
Dave Jiang July 15, 2016, 8:15 p.m. UTC | #10
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:

> > Hi Dave,

> > 

> > Thank you for the patch.

> > 

> > 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@intel.com>

> > > ---

> > >  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.. :(

> 

> [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.
Laurent Pinchart July 16, 2016, 3:09 p.m. UTC | #11
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@intel.com>
> > > > ---
> > > >  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.
diff mbox

Patch

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) {
 			spin_unlock_irq(&chan->lock);
-			callback(callback_param);
+			dmaengine_desc_callback_invoke(&cb, NULL);
 			spin_lock_irq(&chan->lock);
 		}
 	}
@@ -1392,7 +1389,8 @@  static irqreturn_t rcar_dmac_isr_channel_thread(int irq, void *dev)
 			 * safely dereference it without holding the channel
 			 * lock.
 			 */
-			desc->async_tx.callback(desc->async_tx.callback_param);
+			dmaengine_desc_get_callback(&desc->async_tx, &cb);
+			dmaengine_desc_callback_invoke(&cb, NULL);
 			spin_lock_irq(&chan->lock);
 		}