diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2005-03-14 21:43:30 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2005-03-14 21:43:30 +0000 |
commit | 0943f48db113f8ef861354444fe7a4d33dd576f6 (patch) | |
tree | 709470475413129a36ae993c942200ed64b3aa38 /c/src/lib/libbsp/powerpc/shared/pci/pcifinddevice.c | |
parent | 2005-03-14 Joel Sherrill <joel@OARcorp.com> (diff) | |
download | rtems-0943f48db113f8ef861354444fe7a4d33dd576f6.tar.bz2 |
2005-03-14 Joel Sherrill <joel@OARcorp.com>
* pci/pci.c, pci/pci.h, pci/pcifinddevice.c: Continue PCI API
unification. All use pci_find_device(). Also reformat to remove tabs.
Diffstat (limited to 'c/src/lib/libbsp/powerpc/shared/pci/pcifinddevice.c')
-rw-r--r-- | c/src/lib/libbsp/powerpc/shared/pci/pcifinddevice.c | 73 |
1 files changed, 38 insertions, 35 deletions
diff --git a/c/src/lib/libbsp/powerpc/shared/pci/pcifinddevice.c b/c/src/lib/libbsp/powerpc/shared/pci/pcifinddevice.c index 093a0fd4bc..4662e873d2 100644 --- a/c/src/lib/libbsp/powerpc/shared/pci/pcifinddevice.c +++ b/c/src/lib/libbsp/powerpc/shared/pci/pcifinddevice.c @@ -7,51 +7,54 @@ * $Id$ */ -#define PCI_INVALID_VENDORDEVICEID 0xffffffff -#define PCI_MULTI_FUNCTION 0x80 +#define PCI_INVALID_VENDORDEVICEID 0xffffffff +#define PCI_MULTI_FUNCTION 0x80 #include <bsp/pci.h> #include <rtems/bspIo.h> int -pci_find_by_devid( unsigned short vendorid, unsigned short deviceid, - int instance, int *pbus, int *pdev, int *pfun ) -{ +pci_find_device( + unsigned short vendorid, + unsigned short deviceid, + int instance, + int *pbus, + int *pdev, + int *pfun +) { unsigned int d; unsigned short s; unsigned char bus,dev,fun,hd; - for (bus=0; bus<BusCountPCI(); bus++) { - for (dev=0; dev<PCI_MAX_DEVICES; dev++) { - - pci_read_config_byte(bus,dev,0, PCI_HEADER_TYPE, &hd); - hd = (hd & PCI_MULTI_FUNCTION ? PCI_MAX_FUNCTIONS : 1); - - for (fun=0; fun<hd; fun++) { - /* - * The last devfn id/slot is special; must skip it - */ - if (PCI_MAX_DEVICES-1==dev && PCI_MAX_FUNCTIONS-1 == fun) - break; - (void)pci_read_config_dword(bus,dev,fun,PCI_VENDOR_ID,&d); - if (PCI_INVALID_VENDORDEVICEID == d) - continue; + for (bus=0; bus<BusCountPCI(); bus++) { + for (dev=0; dev<PCI_MAX_DEVICES; dev++) { + + pci_read_config_byte(bus,dev,0, PCI_HEADER_TYPE, &hd); + hd = (hd & PCI_MULTI_FUNCTION ? PCI_MAX_FUNCTIONS : 1); + + for (fun=0; fun<hd; fun++) { + /* + * The last devfn id/slot is special; must skip it + */ + if (PCI_MAX_DEVICES-1==dev && PCI_MAX_FUNCTIONS-1 == fun) + break; + (void)pci_read_config_dword(bus,dev,fun,PCI_VENDOR_ID,&d); + if (PCI_INVALID_VENDORDEVICEID == d) + continue; #ifdef PCI_DEBUG - printk("pci_find_by_devid: found 0x%08x at %d/%d/%d\n",d,bus,dev,fun); + printk("pci_find_by_devid: found 0x%08x at %d/%d/%d\n",d,bus,dev,fun); #endif - (void) pci_read_config_word(bus,dev,fun,PCI_VENDOR_ID,&s); - if (vendorid != s) - continue; - (void) pci_read_config_word(bus,dev,fun,PCI_DEVICE_ID,&s); - if (deviceid == s) { - if (instance--) continue; - *pbus=bus; *pdev=dev; *pfun=fun; - return 0; - } - } + (void) pci_read_config_word(bus,dev,fun,PCI_VENDOR_ID,&s); + if (vendorid != s) + continue; + (void) pci_read_config_word(bus,dev,fun,PCI_DEVICE_ID,&s); + if (deviceid == s) { + if (instance--) continue; + *pbus=bus; *pdev=dev; *pfun=fun; + return 0; + } } - } - return -1; + } + } + return -1; } - -/* eof */ |