add pci_is_root_bus()
authorjsg <jsg@openbsd.org>
Wed, 31 Jan 2018 05:04:41 +0000 (05:04 +0000)
committerjsg <jsg@openbsd.org>
Wed, 31 Jan 2018 05:04:41 +0000 (05:04 +0000)
sys/dev/pci/drm/drm_drv.c
sys/dev/pci/drm/drm_linux.h

index 1cefbb8..9db6ba5 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: drm_drv.c,v 1.156 2018/01/30 08:17:31 jsg Exp $ */
+/* $OpenBSD: drm_drv.c,v 1.157 2018/01/31 05:04:41 jsg Exp $ */
 /*-
  * Copyright 2007-2009 Owain G. Ainsworth <oga@openbsd.org>
  * Copyright © 2008 Intel Corporation
@@ -430,6 +430,7 @@ drm_attach(struct device *parent, struct device *self, void *aux)
        dev->pdev->bus = &dev->pdev->_bus;
        dev->pdev->bus->pc = da->pc;
        dev->pdev->bus->number = bus;
+       dev->pdev->bus->bridgetag = da->bridgetag;
        dev->pdev->devfn = PCI_DEVFN(slot, func);
 
        dev->pc = da->pc;
index 1c7fd9f..f11ac61 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: drm_linux.h,v 1.81 2018/01/31 03:26:00 jsg Exp $      */
+/*     $OpenBSD: drm_linux.h,v 1.82 2018/01/31 05:04:41 jsg Exp $      */
 /*
  * Copyright (c) 2013, 2014, 2015 Mark Kettenis
  * Copyright (c) 2017 Martin Pieuchot
@@ -1434,6 +1434,7 @@ struct resource {
 struct pci_bus {
        pci_chipset_tag_t pc;
        unsigned char   number;
+       pcitag_t        *bridgetag;
 };
 
 struct pci_dev {
@@ -1576,6 +1577,12 @@ pci_pcie_cap(struct pci_dev *pdev)
        return pos;
 }
 
+static inline bool
+pci_is_root_bus(struct pci_bus *pbus)
+{
+       return (pbus->bridgetag == NULL);
+}
+
 static inline int
 pcie_capability_read_dword(struct pci_dev *pdev, int off, u32 *val)
 {