[PATCH 1/3] staging: comedi: work without HAS_DMA

Ian Abbott abbotti at mev.co.uk
Fri May 10 13:17:21 UTC 2013


On 2013-05-10 14:07, Ian Abbott wrote:
> The core "comedi" module and the "mite" helper module for NI PCI devices
> both have calls to `dma_alloc_coherent()` and `dma_free_coherent()`.
> Those functions are only available if `CONFIG_HAS_DMA` is defined.
>
> Apart from the "mite" module, the functions are only called for comedi
> drivers that set `s->async_dma_dir` (where `s` is a pointer to a `struct
> comedi_subdevice`) to anything other than `DMA_NONE`.
>
> Change local helper functions `__comedi_buf_alloc()` and
> `__comedi_buf_free()` to only call `dma_alloc_coherent()` and
> `dma_free_coherent()` if `CONFIG_HAS_DMA` is defined.
>
> Change the "Kconfig" to make the following configuration options depend
> on `HAS_DMA`:
>
> `COMEDI_MITE` - builds the "mite" module.
> `COMEDI_NI_6527` - selects `COMEDI_MITE`.
> `COMEDI_NI_65XX` - selects `COMEDI_MITE`.
> `COMEDI_NI_670X` - selects `COMEDI_MITE`.
> `COMEDI_NI_LABPC_PCI` - selects `COMEDI_MITE`.
> `COMEDI_NI_PCIDIO` - selects `COMEDI_MITE`.
> `COMEDI_NI_TIOCMD` - selects `COMEDI_MITE`.
> `COMEDI_NI_660X` - selects `COMEDI_NI_TIOCMD`,
>                     sets `s->async_dma_dir`.
> `COMEDI_NI_PCIMIO` - selects `COMEDI_NI_TIOCMD`,
>                       sets `s->async_dma_dir`.

Doesn't really matter, but for completeness `COMEDI_NI_PCIDIO` also sets 
`s->async_dma_dir`.

-- 
-=( Ian Abbott @ MEV Ltd.    E-mail: <abbotti at mev.co.uk>        )=-
-=( Tel: +44 (0)161 477 1898   FAX: +44 (0)161 718 3587         )=-



More information about the devel mailing list