comedi_pci.h revision d2f63f9c67ef1a627e7b0ccd5e236272db118ceb
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 29#include <linux/pci.h> 30 31/* 32 * Enable the PCI device and request the regions. 33 */ 34static inline int comedi_pci_enable(struct pci_dev *pdev, const char *res_name) 35{ 36 int rc; 37 38 rc = pci_enable_device(pdev); 39 if (rc < 0) 40 return rc; 41 42 rc = pci_request_regions(pdev, res_name); 43 if (rc < 0) 44 pci_disable_device(pdev); 45 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 */ 54static inline void comedi_pci_disable(struct pci_dev *pdev) 55{ 56 pci_release_regions(pdev); 57 pci_disable_device(pdev); 58} 59 60#endif 61