Hi Marek, On Wed, Jan 2, 2013 at 3:22 PM, Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> wrote: > On 12/28/2012 8:23 PM, Geert Uytterhoeven wrote: >> dma_common_mmap() and dma_common_get_sgtable() are defined in >> drivers/base/dma-mapping.c, and always compiled if CONFIG_HAS_DMA=y. >> >> However, their forward declarations and the inline functions defined on >> top >> of them (dma_mmap_attrs(), dma_mmap_coherent(), dma_mmap_writecombine(), >> dma_get_sgtable_attrs()), dma_get_sgtable()) are in >> <asm-generic/dma-mapping-common.h>, which is not included by all >> architectures supporting CONFIG_HAS_DMA=y. There exist no alternative >> implementations. >> >> Hence for e.g. m68k allmodconfig, I get: >> >> drivers/media/v4l2-core/videobuf2-dma-contig.c: In function ‘vb2_dc_mmap’: >> drivers/media/v4l2-core/videobuf2-dma-contig.c:204: error: implicit >> declaration of function ‘dma_mmap_coherent’ >> drivers/media/v4l2-core/videobuf2-dma-contig.c: In function >> ‘vb2_dc_get_base_sgt’: >> drivers/media/v4l2-core/videobuf2-dma-contig.c:387: error: implicit >> declaration of function ‘dma_get_sgtable’ >> >> To fix this >> - Move the forward declarations and inline definitions to >> <linux/dma-mapping.h>, so all CONFIG_HAS_DMA=y architectures can use >> them, >> - Replace the hard "BUG_ON(!ops)" checks for dma_map_ops by soft >> checks, >> so architectures can fall back to the common code by returning NULL >> from their get_dma_ops(). Note that there are no "BUG_ON(!ops)" >> checks >> in other functions in <asm-generic/dma-mapping-common.h>, >> - Make "struct dma_map_ops *ops" const while we're at it. > > > I think that more appropriate way of handling it is to avoid dma_map_ops > based > calls (those archs probably have some reasons why they don't use it at all) > and > provide static inline stubs which call dma_common_mmap and > dma_common_get_sgtable. OK, I'll do that. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html