pci: for io address use the corresponding mask for flags.
This commit is contained in:
parent
786a38f555
commit
e2a87acacd
@ -1185,11 +1185,15 @@ PCI::_GetBarInfo(PCIDev *dev, uint8 offset, uint32 *_address, uint32 *_size,
|
|||||||
WriteConfig(dev->domain, dev->bus, dev->device, dev->function, offset, 4,
|
WriteConfig(dev->domain, dev->bus, dev->device, dev->function, offset, 4,
|
||||||
oldValue);
|
oldValue);
|
||||||
|
|
||||||
*_address = oldValue & PCI_address_memory_32_mask;
|
uint32 mask = PCI_address_memory_32_mask;
|
||||||
|
if ((oldValue & PCI_address_space) == PCI_address_space)
|
||||||
|
mask = PCI_address_io_mask;
|
||||||
|
|
||||||
|
*_address = oldValue & mask;
|
||||||
if (_size != NULL)
|
if (_size != NULL)
|
||||||
*_size = _BarSize(newValue, PCI_address_memory_32_mask);
|
*_size = _BarSize(newValue, mask);
|
||||||
if (_flags != NULL)
|
if (_flags != NULL)
|
||||||
*_flags = newValue & 0xf;
|
*_flags = newValue & ~mask;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user