On 2013-05-09 22:33, H Hartley Sweeten wrote:On Thursday, May 09, 2013 2:05 PM, Geert Uytterhoeven wrote:If NO_DMA=y:
ERROR: "dma_free_coherent" [drivers/staging/comedi/comedi.ko] undefined!
ERROR: "dma_alloc_coherent" [drivers/staging/comedi/comedi.ko] undefined!
Signed-off-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Cc: Ian Abbott <abbotti@xxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Cc: devel@xxxxxxxxxxxxxxxxxxxx
Grr..
The error appears to be caused by the dma alloc/free in comedi_buf.c.
These only happen if the (s->async_dma_dir != DMA_NONE). The comedi
core defaults the async_dma_dir to DMA_NONE. The only comedi drivers
that set it are ni_660x, ni_mio_common, and ni_pcidio.
The mite driver also has a dma_alloc/free.
Ian, can you think of a better solution than just making comedi depend on HAS_DMA?
The only alternative I can think of is to change comedi_buf.c to only
compile in the functions if CONFIG_HAS_DMA is defined and to make the
following config options depend on HAS_DMA:
COMEDI_NI_6527
COMEDI_NI_65XX
COMEDI_NI_660X
COMEDI_NI_670X
COMEDI_NI_LABPC_PCI
COMEDI_NI_PCIDIO
COMEDI_NI_PCIMIO
COMEDI_MITE
COMEDI_NI_TIOCMD