Message ID | 530FD7D7.9000104@ti.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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
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
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
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 ?
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
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 --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 *),