Date: Wed, 24 Mar 2021 08:00:49 GMT From: Hans Petter Selasky <hselasky@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Subject: git: 7cf565b2c5f0 - stable/12 - Implement pci_get_relaxed_ordering_enabled() helper function. Message-ID: <202103240800.12O80nWR059797@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch stable/12 has been updated by hselasky: URL: https://cgit.FreeBSD.org/src/commit/?id=7cf565b2c5f0ed90eecd52b0fde8b81b746d662e commit 7cf565b2c5f0ed90eecd52b0fde8b81b746d662e Author: Hans Petter Selasky <hselasky@FreeBSD.org> AuthorDate: 2021-03-16 15:06:42 +0000 Commit: Hans Petter Selasky <hselasky@FreeBSD.org> CommitDate: 2021-03-24 07:59:58 +0000 Implement pci_get_relaxed_ordering_enabled() helper function. Discussed with: kib@ MFC after: 1 week Sponsored by: Mellanox Technologies // NVIDIA Networking (cherry picked from commit 1acf24a044aaa0391c61af4abe7e018c3bf8a37c) --- 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 644336562a3b..f3a0309c5202 100644 --- a/sys/dev/pci/pci.c +++ b/sys/dev/pci/pci.c @@ -2160,6 +2160,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 65f37a85edd7..b3126ad8dc51 100644 --- a/sys/dev/pci/pcivar.h +++ b/sys/dev/pci/pcivar.h @@ -670,6 +670,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);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202103240800.12O80nWR059797>