diff options
Diffstat (limited to 'lib/sysfs.c')
-rw-r--r-- | lib/sysfs.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/sysfs.c b/lib/sysfs.c index 986ecc9..65f58bf 100644 --- a/lib/sysfs.c +++ b/lib/sysfs.c @@ -153,14 +153,17 @@ sysfs_get_resources(struct pci_dev *d) size = end - start + 1; else size = 0; - flags &= PCI_ADDR_FLAG_MASK; if (i < 6) { + d->flags[i] = flags; + flags &= PCI_ADDR_FLAG_MASK; d->base_addr[i] = start | flags; d->size[i] = size; } else { + d->rom_flags = flags; + flags &= PCI_ADDR_FLAG_MASK; d->rom_base_addr = start | flags; d->rom_size = size; } @@ -208,7 +211,7 @@ static void sysfs_scan(struct pci_access *a) d->vendor_id = sysfs_get_value(d, "vendor", 1); d->device_id = sysfs_get_value(d, "device", 1); d->device_class = sysfs_get_value(d, "class", 1) >> 8; - d->known_fields = PCI_FILL_IDENT | PCI_FILL_CLASS | PCI_FILL_IRQ | PCI_FILL_BASES | PCI_FILL_ROM_BASE | PCI_FILL_SIZES; + d->known_fields = PCI_FILL_IDENT | PCI_FILL_CLASS | PCI_FILL_IRQ | PCI_FILL_BASES | PCI_FILL_ROM_BASE | PCI_FILL_SIZES | PCI_FILL_IO_FLAGS; } pci_link_dev(a, d); } |