aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/comedi/drivers/ni_labpc_isadma.h
blob: 771af4bd5a7623859166661e53501627f8b5f5ad (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
/*
 * ni_labpc ISA DMA support.
*/

#ifndef _NI_LABPC_ISADMA_H
#define _NI_LABPC_ISADMA_H

#define NI_LABPC_HAVE_ISA_DMA	IS_ENABLED(CONFIG_COMEDI_NI_LABPC_ISADMA)

#if NI_LABPC_HAVE_ISA_DMA

static inline bool labpc_have_dma_chan(struct comedi_device *dev)
{
	struct labpc_private *devpriv = dev->private;

	return (bool)devpriv->dma_chan;
}

int labpc_init_dma_chan(struct comedi_device *dev, unsigned int dma_chan);
void labpc_free_dma_chan(struct comedi_device *dev);
void labpc_setup_dma(struct comedi_device *dev, struct comedi_subdevice *s);
void labpc_drain_dma(struct comedi_device *dev);
void labpc_handle_dma_status(struct comedi_device *dev);

#else

static inline bool labpc_have_dma_chan(struct comedi_device *dev)
{
	return false;
}

static inline int labpc_init_dma_chan(struct comedi_device *dev,
				      unsigned int dma_chan)
{
	return -ENOTSUPP;
}

static inline void labpc_free_dma_chan(struct comedi_device *dev)
{
}

static inline void labpc_setup_dma(struct comedi_device *dev,
				   struct comedi_subdevice *s)
{
}

static inline void labpc_drain_dma(struct comedi_device *dev)
{
}

static inline void labpc_handle_dma_status(struct comedi_device *dev)
{
}

#endif

#endif /* _NI_LABPC_ISADMA_H */