diff mbox

dma: of: Move the functions under CONFIG_OF_DMA instead of CONFIG_OF

Message ID 530FD7D7.9000104@ti.com (mailing list archive)
State New, archived
Headers show

Commit Message

Santosh Shilimkar Feb. 28, 2014, 12:27 a.m. UTC
On Thursday 27 February 2014 07:20 PM, Santosh Shilimkar wrote:
> The of-dma.c is compiled out with !CONFIG_OF_DMA but the functions in
> the header are kept under CONFIG_OF. Move them under CONFIG_OF_DMA
> to avoid build errors with CONFIG_OFF && !CONFIG_OF_DMA
> 
> Cc: Grant Likely <grant.likely@linaro.org>
> Cc: Rob Herring <robh+dt@kernel.org>
> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
> ---
>  include/linux/of_dma.h |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/include/linux/of_dma.h b/include/linux/of_dma.h
> index 0322363..3d2beab 100644
> --- a/include/linux/of_dma.h
> +++ b/include/linux/of_dma.h
> @@ -31,7 +31,7 @@ struct of_dma_filter_info {
>  	dma_filter_fn	filter_fn;
>  };
>  
> -#ifdef CONFIG_OF
> +#ifdef CONFIG_OF_DMA
Sorry.. Typo here.. Should have been CONFIG_DMA_OF

From 31242461b6ba5e8c0c5ee26e394fa4cab61e3aa1 Mon Sep 17 00:00:00 2001
From: Santosh Shilimkar <santosh.shilimkar@ti.com>
Date: Thu, 27 Feb 2014 19:13:36 -0500
Subject: [PATCH] dma: of: Move the functions under CONFIG_DMA_OF instead of
 CONFIG_OF

The of-dma.c is compiled out with !CONFIG_DMA_OF but the functions in
the header are kept under CONFIG_OF. Move them under CONFIG_OF_DMA
to avoid build errors with CONFIG_OFF && !CONFIG_DMA_OF

Cc: Grant Likely <grant.likely@linaro.org>
Cc: Rob Herring <robh+dt@kernel.org>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
---
 include/linux/of_dma.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Arnd Bergmann Feb. 28, 2014, 9:23 a.m. UTC | #1
On Thursday 27 February 2014 19:27:03 Santosh Shilimkar wrote:
> 
> The of-dma.c is compiled out with !CONFIG_DMA_OF but the functions in
> the header are kept under CONFIG_OF. Move them under CONFIG_OF_DMA
> to avoid build errors with CONFIG_OFF && !CONFIG_DMA_OF
> 
> Cc: Grant Likely <grant.likely@linaro.org>
> Cc: Rob Herring <robh+dt@kernel.org>
> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>

Sorry, but what is the problem you are seeing with this?

CONFIG_DMA_OF is defined as 'OF && DMAENGINE', and this code
should only be called from drivers that depend on DMAENGINE.

I'm not saying your patch is wrong, but you shouldn't need it
unless you do something very odd.

	Arnd
Santosh Shilimkar Feb. 28, 2014, 2:24 p.m. UTC | #2
On Friday 28 February 2014 04:23 AM, Arnd Bergmann wrote:
> On Thursday 27 February 2014 19:27:03 Santosh Shilimkar wrote:
>>
>> The of-dma.c is compiled out with !CONFIG_DMA_OF but the functions in
>> the header are kept under CONFIG_OF. Move them under CONFIG_OF_DMA
>> to avoid build errors with CONFIG_OFF && !CONFIG_DMA_OF
>>
>> Cc: Grant Likely <grant.likely@linaro.org>
>> Cc: Rob Herring <robh+dt@kernel.org>
>> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
> 
> Sorry, but what is the problem you are seeing with this?
> 
> CONFIG_DMA_OF is defined as 'OF && DMAENGINE', and this code
> should only be called from drivers that depend on DMAENGINE.
> 
> I'm not saying your patch is wrong, but you shouldn't need it
> unless you do something very odd.
> 
So for ARM 'allnoconfig' build we have CONFIG_OF enabled but
CONFIG_DMA_OF disabled. With that the of-dma.c gets compiled
out leaving the functions from of-dma.h undefined. I noticed
this while adding couple of exports in of_dma.h

I am not sure but we added couple of functions for dma-ranges
and dma-coherent which gets called from generic code.

In any case, the patch makes sense since the header and Makefile
are not consistent.

Regards,
Santosh
Arnd Bergmann Feb. 28, 2014, 2:47 p.m. UTC | #3
On Friday 28 February 2014 09:24:27 Santosh Shilimkar wrote:
> So for ARM 'allnoconfig' build we have CONFIG_OF enabled but
> CONFIG_DMA_OF disabled. With that the of-dma.c gets compiled
> out leaving the functions from of-dma.h undefined. I noticed
> this while adding couple of exports in of_dma.h

Looking at current linux-next, I find

Kconfig:

menuconfig DMADEVICES
        bool "DMA Engine support"
...
if DMADEVICES

config DMA_OF
        def_bool y
        depends on OF

endif

This means that DMA_OF is disabled in 'allnoconfig' since DMADEVICES
is also disabled, as you say. The Makefile looks like

obj-$(CONFIG_DMA_OF) += of-dma.o

As of 5fa422c922c25 "dmaengine: move drivers/of/dma.c -> drivers/dma/of-dma.c"

which seems to solve the problem already.

> I am not sure but we added couple of functions for dma-ranges
> and dma-coherent which gets called from generic code.

These functions have nothing to do with the dmaengine code though,
they should be in a different file.

	Arnd
Santosh Shilimkar Feb. 28, 2014, 3:03 p.m. UTC | #4
On Friday 28 February 2014 09:47 AM, Arnd Bergmann wrote:
> On Friday 28 February 2014 09:24:27 Santosh Shilimkar wrote:
>> So for ARM 'allnoconfig' build we have CONFIG_OF enabled but
>> CONFIG_DMA_OF disabled. With that the of-dma.c gets compiled
>> out leaving the functions from of-dma.h undefined. I noticed
>> this while adding couple of exports in of_dma.h
> 
> Looking at current linux-next, I find
> 
> Kconfig:
> 
> menuconfig DMADEVICES
>         bool "DMA Engine support"
> ...
> if DMADEVICES
> 
> config DMA_OF
>         def_bool y
>         depends on OF
> 
> endif
> 
> This means that DMA_OF is disabled in 'allnoconfig' since DMADEVICES
> is also disabled, as you say. The Makefile looks like
> 
> obj-$(CONFIG_DMA_OF) += of-dma.o
> 
> As of 5fa422c922c25 "dmaengine: move drivers/of/dma.c -> drivers/dma/of-dma.c"
> 
> which seems to solve the problem already.
> 
>> I am not sure but we added couple of functions for dma-ranges
>> and dma-coherent which gets called from generic code.
> 
> These functions have nothing to do with the dmaengine code though,
> they should be in a different file.
> 
Any suggestion on different file ?
Arnd Bergmann Feb. 28, 2014, 3:21 p.m. UTC | #5
On Friday 28 February 2014 10:03:10 Santosh Shilimkar wrote:
> > As of 5fa422c922c25 "dmaengine: move drivers/of/dma.c -> drivers/dma/of-dma.c"
> > 
> > which seems to solve the problem already.
> > 
> >> I am not sure but we added couple of functions for dma-ranges
> >> and dma-coherent which gets called from generic code.
> > 
> > These functions have nothing to do with the dmaengine code though,
> > they should be in a different file.
> > 
> Any suggestion on different file ?
 
drivers/of/platform.c would be my first choice. Possibly a new
drivers/of/dma-mapping.c.

	Arnd
Santosh Shilimkar Feb. 28, 2014, 3:25 p.m. UTC | #6
On Friday 28 February 2014 10:21 AM, Arnd Bergmann wrote:
> On Friday 28 February 2014 10:03:10 Santosh Shilimkar wrote:
>>> As of 5fa422c922c25 "dmaengine: move drivers/of/dma.c -> drivers/dma/of-dma.c"
>>>
>>> which seems to solve the problem already.
>>>
>>>> I am not sure but we added couple of functions for dma-ranges
>>>> and dma-coherent which gets called from generic code.
>>>
>>> These functions have nothing to do with the dmaengine code though,
>>> they should be in a different file.
>>>
>> Any suggestion on different file ?
>  
> drivers/of/platform.c would be my first choice. Possibly a new
> drivers/of/dma-mapping.c.
> 
'drivers/of/platform.c' sounds good.
Regards,
Santosh
diff mbox

Patch

diff --git a/include/linux/of_dma.h b/include/linux/of_dma.h
index 0322363..0ea24f4 100644
--- a/include/linux/of_dma.h
+++ b/include/linux/of_dma.h
@@ -31,7 +31,7 @@  struct of_dma_filter_info {
 	dma_filter_fn	filter_fn;
 };
 
-#ifdef CONFIG_OF
+#ifdef CONFIG_DMA_OF
 extern int of_dma_controller_register(struct device_node *np,
 		struct dma_chan *(*of_dma_xlate)
 		(struct of_phandle_args *, struct of_dma *),