PCI: Add new pci_is_bridge() interface
authorYijing Wang <wangyijing@huawei.com>
Sun, 4 May 2014 04:23:37 +0000 (12:23 +0800)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 27 May 2014 18:21:02 +0000 (12:21 -0600)
Add a helper function to check a device's header type for PCI bridge or
CardBus bridge.

Requires: 326c1cdae741 PCI: Rename pci_is_bridge() to pci_has_subordinate()
Signed-off-by: Yijing Wang <wangyijing@huawei.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
include/linux/pci.h

index aab57b4abe7fce4ef59adc14db6400d3a6af57cc..f2a5946ea0bfcccbf421b6d48762b4f2b945f7b2 100644 (file)
@@ -477,6 +477,19 @@ static inline bool pci_is_root_bus(struct pci_bus *pbus)
        return !(pbus->parent);
 }
 
+/**
+ * pci_is_bridge - check if the PCI device is a bridge
+ * @dev: PCI device
+ *
+ * Return true if the PCI device is bridge whether it has subordinate
+ * or not.
+ */
+static inline bool pci_is_bridge(struct pci_dev *dev)
+{
+       return dev->hdr_type == PCI_HEADER_TYPE_BRIDGE ||
+               dev->hdr_type == PCI_HEADER_TYPE_CARDBUS;
+}
+
 static inline struct pci_dev *pci_upstream_bridge(struct pci_dev *dev)
 {
        dev = pci_physfn(dev);