Commit | Line | Data |
---|---|---|
a9f23e00 DS |
1 | /* |
2 | comedi/drivers/comedi_pci.h | |
3 | Various PCI functions for drivers. | |
4 | ||
5 | Copyright (C) 2007 MEV Ltd. <http://www.mev.co.uk/> | |
6 | ||
7 | COMEDI - Linux Control and Measurement Device Interface | |
8 | Copyright (C) 2000 David A. Schleef <ds@schleef.org> | |
9 | ||
10 | This program is free software; you can redistribute it and/or modify | |
11 | it under the terms of the GNU General Public License as published by | |
12 | the Free Software Foundation; either version 2 of the License, or | |
13 | (at your option) any later version. | |
14 | ||
15 | This program is distributed in the hope that it will be useful, | |
16 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 | GNU General Public License for more details. | |
19 | ||
20 | You should have received a copy of the GNU General Public License | |
21 | along with this program; if not, write to the Free Software | |
22 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |
23 | ||
24 | */ | |
25 | ||
26 | #ifndef _COMEDI_PCI_H_ | |
27 | #define _COMEDI_PCI_H_ | |
28 | ||
a9f23e00 DS |
29 | #include <linux/pci.h> |
30 | ||
a9f23e00 DS |
31 | /* |
32 | * Enable the PCI device and request the regions. | |
33 | */ | |
34 | static inline int comedi_pci_enable(struct pci_dev *pdev, const char *res_name) | |
35 | { | |
36 | int rc; | |
37 | ||
38 | rc = pci_enable_device(pdev); | |
d72187b7 | 39 | if (rc < 0) |
a9f23e00 | 40 | return rc; |
d72187b7 | 41 | |
a9f23e00 | 42 | rc = pci_request_regions(pdev, res_name); |
d72187b7 | 43 | if (rc < 0) |
5604ec6f | 44 | pci_disable_device(pdev); |
d72187b7 | 45 | |
a9f23e00 DS |
46 | return rc; |
47 | } | |
48 | ||
49 | /* | |
50 | * Release the regions and disable the PCI device. | |
51 | * | |
52 | * This must be matched with a previous successful call to comedi_pci_enable(). | |
53 | */ | |
54 | static inline void comedi_pci_disable(struct pci_dev *pdev) | |
55 | { | |
56 | pci_release_regions(pdev); | |
57 | pci_disable_device(pdev); | |
58 | } | |
59 | ||
60 | #endif |