Reduce excessive pci_get_devid() and pci_get_revid() calls

on the same PCI device while device probing.
This commit is contained in:
jkim 2009-04-27 18:10:42 +00:00
parent fd252e7b25
commit 0dffd87191

View File

@ -759,13 +759,17 @@ ata_set_desc(device_t dev)
struct ata_chip_id *
ata_match_chip(device_t dev, struct ata_chip_id *index)
{
uint32_t devid;
uint8_t revid;
devid = pci_get_devid(dev);
revid = pci_get_revid(dev);
while (index->chipid != 0) {
if (pci_get_devid(dev) == index->chipid &&
pci_get_revid(dev) >= index->chiprev)
return index;
if (devid == index->chipid && revid >= index->chiprev)
return (index);
index++;
}
return NULL;
return (NULL);
}
struct ata_chip_id *