The branch main has been updated by hselasky:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=1acf24a044aaa0391c61af4abe7e018c3bf8a37c

commit 1acf24a044aaa0391c61af4abe7e018c3bf8a37c
Author:     Hans Petter Selasky <hsela...@freebsd.org>
AuthorDate: 2021-03-16 15:06:42 +0000
Commit:     Hans Petter Selasky <hsela...@freebsd.org>
CommitDate: 2021-03-17 12:48:04 +0000

    Implement pci_get_relaxed_ordering_enabled() helper function.
    
    Discussed with: kib@
    MFC after:      1 week
    Sponsored by:   Mellanox Technologies // NVIDIA Networking
---
 sys/dev/pci/pci.c    | 15 +++++++++++++++
 sys/dev/pci/pcivar.h |  1 +
 2 files changed, 16 insertions(+)

diff --git a/sys/dev/pci/pci.c b/sys/dev/pci/pci.c
index 1ca128a48ad0..d85ce5baa7bc 100644
--- a/sys/dev/pci/pci.c
+++ b/sys/dev/pci/pci.c
@@ -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)
 {
diff --git a/sys/dev/pci/pcivar.h b/sys/dev/pci/pcivar.h
index 0f04ca8f623c..74aa704635f7 100644
--- a/sys/dev/pci/pcivar.h
+++ b/sys/dev/pci/pcivar.h
@@ -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);
_______________________________________________
dev-commits-src-main@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/dev-commits-src-main
To unsubscribe, send any mail to "dev-commits-src-main-unsubscr...@freebsd.org"

Reply via email to