Implement pci_get_relaxed_ordering_enabled() helper function.

Discussed with:	kib@
MFC after:	1 week
Sponsored by:	Mellanox Technologies // NVIDIA Networking
This commit is contained in:
Hans Petter Selasky 2021-03-16 16:06:42 +01:00
parent c96151d335
commit 1acf24a044
2 changed files with 16 additions and 0 deletions

View File

@ -2182,6 +2182,21 @@ pci_ht_map_msi(device_t dev, uint64_t addr)
}
}
int
pci_get_relaxed_ordering_enabled(device_t dev)
{
struct pci_devinfo *dinfo = device_get_ivars(dev);
int cap;
uint16_t val;
cap = dinfo->cfg.pcie.pcie_location;
if (cap == 0)
return (0);
val = pci_read_config(dev, cap + PCIER_DEVICE_CTL, 2);
val &= PCIEM_CTL_RELAXED_ORD_ENABLE;
return (val != 0);
}
int
pci_get_max_payload(device_t dev)
{

View File

@ -677,6 +677,7 @@ int pci_msix_device_blacklisted(device_t dev);
void pci_ht_map_msi(device_t dev, uint64_t addr);
device_t pci_find_pcie_root_port(device_t dev);
int pci_get_relaxed_ordering_enabled(device_t dev);
int pci_get_max_payload(device_t dev);
int pci_get_max_read_req(device_t dev);
void pci_restore_state(device_t dev);