| Andi Kleen | e8b553b | 2009-07-24 11:41:15 +0200 | [diff] [blame] | 1 | #include <linux/init.h> | 
 | 2 | #include <linux/pci.h> | 
 | 3 | #include <linux/module.h> | 
 | 4 | #include <linux/interrupt.h> | 
 | 5 | #include "pci.h" | 
 | 6 |  | 
 | 7 | /** | 
 | 8 |  * pci_find_device - begin or continue searching for a PCI device by vendor/device id | 
 | 9 |  * @vendor: PCI vendor id to match, or %PCI_ANY_ID to match all vendor ids | 
 | 10 |  * @device: PCI device id to match, or %PCI_ANY_ID to match all device ids | 
 | 11 |  * @from: Previous PCI device found in search, or %NULL for new search. | 
 | 12 |  * | 
 | 13 |  * Iterates through the list of known PCI devices.  If a PCI device is found | 
 | 14 |  * with a matching @vendor and @device, a pointer to its device structure is | 
 | 15 |  * returned.  Otherwise, %NULL is returned. | 
 | 16 |  * A new search is initiated by passing %NULL as the @from argument. | 
 | 17 |  * Otherwise if @from is not %NULL, searches continue from next device | 
 | 18 |  * on the global list. | 
 | 19 |  * | 
 | 20 |  * NOTE: Do not use this function any more; use pci_get_device() instead, as | 
 | 21 |  * the PCI device returned by this function can disappear at any moment in | 
 | 22 |  * time. | 
 | 23 |  */ | 
 | 24 | struct pci_dev *pci_find_device(unsigned int vendor, unsigned int device, | 
 | 25 | 				struct pci_dev *from) | 
 | 26 | { | 
 | 27 | 	struct pci_dev *pdev; | 
 | 28 |  | 
 | 29 | 	pci_dev_get(from); | 
 | 30 | 	pdev = pci_get_subsys(vendor, device, PCI_ANY_ID, PCI_ANY_ID, from); | 
 | 31 | 	pci_dev_put(pdev); | 
 | 32 | 	return pdev; | 
 | 33 | } | 
 | 34 | EXPORT_SYMBOL(pci_find_device); |