PCI: Introduce pci_pcie_type(dev) to replace pci_dev->pcie_type
authorYijing Wang <wangyijing@huawei.com>
Tue, 24 Jul 2012 09:20:03 +0000 (17:20 +0800)
committerBjorn Helgaas <bhelgaas@google.com>
Thu, 23 Aug 2012 15:40:57 +0000 (09:40 -0600)
Introduce an inline function pci_pcie_type(dev) to extract PCIe
device type from pci_dev->pcie_flags_reg field, and prepare for
removing pci_dev->pcie_type.

Signed-off-by: Yijing Wang <wangyijing@huawei.com>
Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
17 files changed:
arch/powerpc/platforms/powernv/pci-ioda.c
drivers/iommu/intel-iommu.c
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
drivers/pci/iov.c
drivers/pci/pci.c
drivers/pci/pcie/aer/aer_inject.c
drivers/pci/pcie/aer/aerdrv.c
drivers/pci/pcie/aer/aerdrv_acpi.c
drivers/pci/pcie/aer/aerdrv_core.c
drivers/pci/pcie/aspm.c
drivers/pci/pcie/pme.c
drivers/pci/pcie/portdrv_bus.c
drivers/pci/pcie/portdrv_core.c
drivers/pci/pcie/portdrv_pci.c
drivers/pci/probe.c
drivers/pci/search.c

index 9cda6a1ad0cf897c764f62f5f8affabb74a94bd5..b46e1dadc88202728f416a5f01f6974ef0fc7b73 100644 (file)
@@ -855,7 +855,7 @@ static void __devinit pnv_ioda_setup_PEs(struct pci_bus *bus)
                if (pe == NULL)
                        continue;
                /* Leaving the PCIe domain ... single PE# */
-               if (dev->pcie_type == PCI_EXP_TYPE_PCI_BRIDGE)
+               if (pci_pcie_type(dev) == PCI_EXP_TYPE_PCI_BRIDGE)
                        pnv_ioda_setup_bus_PE(dev, pe);
                else if (dev->subordinate)
                        pnv_ioda_setup_PEs(dev->subordinate);
index 7469b5346643595fe1788b04d76135ed30075cfd..8b5075d6dd5a1416be803f27e40aa06903da944d 100644 (file)
@@ -2350,7 +2350,7 @@ static int iommu_should_identity_map(struct pci_dev *pdev, int startup)
                        return 0;
                if (pdev->class >> 8 == PCI_CLASS_BRIDGE_PCI)
                        return 0;
-       } else if (pdev->pcie_type == PCI_EXP_TYPE_PCI_BRIDGE)
+       } else if (pci_pcie_type(pdev) == PCI_EXP_TYPE_PCI_BRIDGE)
                return 0;
 
        /* 
@@ -3545,10 +3545,10 @@ found:
                struct pci_dev *bridge = bus->self;
 
                if (!bridge || !pci_is_pcie(bridge) ||
-                   bridge->pcie_type == PCI_EXP_TYPE_PCI_BRIDGE)
+                   pci_pcie_type(bridge) == PCI_EXP_TYPE_PCI_BRIDGE)
                        return 0;
 
-               if (bridge->pcie_type == PCI_EXP_TYPE_ROOT_PORT) {
+               if (pci_pcie_type(bridge) == PCI_EXP_TYPE_ROOT_PORT) {
                        for (i = 0; i < atsru->devices_cnt; i++)
                                if (atsru->devices[i] == bridge)
                                        return 1;
index 4326f74f7137a333461683f00c8fc1cadfcee4b4..976570d4c939dcd3e9010d3f85d5fcc53e7e1ab2 100644 (file)
@@ -7527,7 +7527,7 @@ static pci_ers_result_t ixgbe_io_error_detected(struct pci_dev *pdev,
                goto skip_bad_vf_detection;
 
        bdev = pdev->bus->self;
-       while (bdev && (bdev->pcie_type != PCI_EXP_TYPE_ROOT_PORT))
+       while (bdev && (pci_pcie_type(bdev) != PCI_EXP_TYPE_ROOT_PORT))
                bdev = bdev->bus->self;
 
        if (!bdev)
index 342b3a79bd0fd7a6a6bde8860446c20c78595ef2..01d6141cedd97cb6ff6e9ed55c6fd47a2b527e33 100644 (file)
@@ -1382,7 +1382,7 @@ static void netxen_mask_aer_correctable(struct netxen_adapter *adapter)
                adapter->ahw.board_type != NETXEN_BRDTYPE_P3_10G_TP)
                return;
 
-       if (root->pcie_type != PCI_EXP_TYPE_ROOT_PORT)
+       if (pci_pcie_type(root) != PCI_EXP_TYPE_ROOT_PORT)
                return;
 
        aer_pos = pci_find_ext_capability(root, PCI_EXT_CAP_ID_ERR);
index 74bbaf82638d9062817c4c7a1b872f506423f1ab..aeccc911abb829182cbee0b82ecb4c0b49640aa2 100644 (file)
@@ -433,8 +433,8 @@ static int sriov_init(struct pci_dev *dev, int pos)
        struct resource *res;
        struct pci_dev *pdev;
 
-       if (dev->pcie_type != PCI_EXP_TYPE_RC_END &&
-           dev->pcie_type != PCI_EXP_TYPE_ENDPOINT)
+       if (pci_pcie_type(dev) != PCI_EXP_TYPE_RC_END &&
+           pci_pcie_type(dev) != PCI_EXP_TYPE_ENDPOINT)
                return -ENODEV;
 
        pci_read_config_word(dev, pos + PCI_SRIOV_CTRL, &ctrl);
@@ -503,7 +503,7 @@ found:
        iov->self = dev;
        pci_read_config_dword(dev, pos + PCI_SRIOV_CAP, &iov->cap);
        pci_read_config_byte(dev, pos + PCI_SRIOV_FUNC_LINK, &iov->link);
-       if (dev->pcie_type == PCI_EXP_TYPE_RC_END)
+       if (pci_pcie_type(dev) == PCI_EXP_TYPE_RC_END)
                iov->link = PCI_DEVFN(PCI_SLOT(dev->devfn), iov->link);
 
        if (pdev)
index f3ea977a5b1bf6f458c8ed0757cd8e02cc1d3ff2..28eb55b77ee9ba99fabe838f5f8dc08bfc884c5c 100644 (file)
@@ -885,7 +885,7 @@ static struct pci_cap_saved_state *pci_find_saved_cap(
 
 static int pci_save_pcie_state(struct pci_dev *dev)
 {
-       int pos, i = 0;
+       int type, pos, i = 0;
        struct pci_cap_saved_state *save_state;
        u16 *cap;
        u16 flags;
@@ -903,13 +903,14 @@ static int pci_save_pcie_state(struct pci_dev *dev)
 
        pci_read_config_word(dev, pos + PCI_EXP_FLAGS, &flags);
 
-       if (pcie_cap_has_devctl(dev->pcie_type, flags))
+       type = pci_pcie_type(dev);
+       if (pcie_cap_has_devctl(type, flags))
                pci_read_config_word(dev, pos + PCI_EXP_DEVCTL, &cap[i++]);
-       if (pcie_cap_has_lnkctl(dev->pcie_type, flags))
+       if (pcie_cap_has_lnkctl(type, flags))
                pci_read_config_word(dev, pos + PCI_EXP_LNKCTL, &cap[i++]);
-       if (pcie_cap_has_sltctl(dev->pcie_type, flags))
+       if (pcie_cap_has_sltctl(type, flags))
                pci_read_config_word(dev, pos + PCI_EXP_SLTCTL, &cap[i++]);
-       if (pcie_cap_has_rtctl(dev->pcie_type, flags))
+       if (pcie_cap_has_rtctl(type, flags))
                pci_read_config_word(dev, pos + PCI_EXP_RTCTL, &cap[i++]);
 
        pos = pci_pcie_cap2(dev);
@@ -924,7 +925,7 @@ static int pci_save_pcie_state(struct pci_dev *dev)
 
 static void pci_restore_pcie_state(struct pci_dev *dev)
 {
-       int i = 0, pos;
+       int i = 0, pos, type;
        struct pci_cap_saved_state *save_state;
        u16 *cap;
        u16 flags;
@@ -937,13 +938,14 @@ static void pci_restore_pcie_state(struct pci_dev *dev)
 
        pci_read_config_word(dev, pos + PCI_EXP_FLAGS, &flags);
 
-       if (pcie_cap_has_devctl(dev->pcie_type, flags))
+       type = pci_pcie_type(dev);
+       if (pcie_cap_has_devctl(type, flags))
                pci_write_config_word(dev, pos + PCI_EXP_DEVCTL, cap[i++]);
-       if (pcie_cap_has_lnkctl(dev->pcie_type, flags))
+       if (pcie_cap_has_lnkctl(type, flags))
                pci_write_config_word(dev, pos + PCI_EXP_LNKCTL, cap[i++]);
-       if (pcie_cap_has_sltctl(dev->pcie_type, flags))
+       if (pcie_cap_has_sltctl(type, flags))
                pci_write_config_word(dev, pos + PCI_EXP_SLTCTL, cap[i++]);
-       if (pcie_cap_has_rtctl(dev->pcie_type, flags))
+       if (pcie_cap_has_rtctl(type, flags))
                pci_write_config_word(dev, pos + PCI_EXP_RTCTL, cap[i++]);
 
        pos = pci_pcie_cap2(dev);
@@ -2459,8 +2461,8 @@ bool pci_acs_enabled(struct pci_dev *pdev, u16 acs_flags)
                acs_flags &= (PCI_ACS_RR | PCI_ACS_CR |
                              PCI_ACS_EC | PCI_ACS_DT);
 
-       if (pdev->pcie_type == PCI_EXP_TYPE_DOWNSTREAM ||
-           pdev->pcie_type == PCI_EXP_TYPE_ROOT_PORT ||
+       if (pci_pcie_type(pdev) == PCI_EXP_TYPE_DOWNSTREAM ||
+           pci_pcie_type(pdev) == PCI_EXP_TYPE_ROOT_PORT ||
            pdev->multifunction) {
                pos = pci_find_ext_capability(pdev, PCI_EXT_CAP_ID_ACS);
                if (!pos)
index 52229863e9fe799a2379ba9ef634837aaadc5a90..4e24cb8a94aec0ecee6e0e923f5ffee50439e601 100644 (file)
@@ -288,7 +288,7 @@ static struct pci_dev *pcie_find_root_port(struct pci_dev *dev)
        while (1) {
                if (!pci_is_pcie(dev))
                        break;
-               if (dev->pcie_type == PCI_EXP_TYPE_ROOT_PORT)
+               if (pci_pcie_type(dev) == PCI_EXP_TYPE_ROOT_PORT)
                        return dev;
                if (!dev->bus->self)
                        break;
index 58ad7917553c34e8933f7a0151796412cbeb6c12..f7c62453ae002a3bf1bd15941184b2416532c506 100644 (file)
@@ -81,10 +81,11 @@ bool pci_aer_available(void)
 static int set_device_error_reporting(struct pci_dev *dev, void *data)
 {
        bool enable = *((bool *)data);
+       int type = pci_pcie_type(dev);
 
-       if ((dev->pcie_type == PCI_EXP_TYPE_ROOT_PORT) ||
-           (dev->pcie_type == PCI_EXP_TYPE_UPSTREAM) ||
-           (dev->pcie_type == PCI_EXP_TYPE_DOWNSTREAM)) {
+       if ((type == PCI_EXP_TYPE_ROOT_PORT) ||
+           (type == PCI_EXP_TYPE_UPSTREAM) ||
+           (type == PCI_EXP_TYPE_DOWNSTREAM)) {
                if (enable)
                        pci_enable_pcie_error_reporting(dev);
                else
index 124f20ff11b2c9b9dc61c94f92cb59bdf61890ba..5194a7d41730ab4ab1d60d26b836ce84af839b10 100644 (file)
@@ -60,7 +60,7 @@ static int aer_hest_parse(struct acpi_hest_header *hest_hdr, void *data)
        p = (struct acpi_hest_aer_common *)(hest_hdr + 1);
        if (p->flags & ACPI_HEST_GLOBAL) {
                if ((pci_is_pcie(info->pci_dev) &&
-                    info->pci_dev->pcie_type == pcie_type) || bridge)
+                    pci_pcie_type(info->pci_dev) == pcie_type) || bridge)
                        ff = !!(p->flags & ACPI_HEST_FIRMWARE_FIRST);
        } else
                if (hest_match_pci(p, info->pci_dev))
index 0ca053538146b92d9a80d7e306d05b52a5b3bfc3..f551534898543dd4cfe88ad384bca34aa37e9f96 100644 (file)
@@ -465,7 +465,7 @@ static pci_ers_result_t reset_link(struct pci_dev *dev)
 
        if (driver && driver->reset_link) {
                status = driver->reset_link(udev);
-       } else if (udev->pcie_type == PCI_EXP_TYPE_DOWNSTREAM) {
+       } else if (pci_pcie_type(udev) == PCI_EXP_TYPE_DOWNSTREAM) {
                status = default_downstream_reset_link(udev);
        } else {
                dev_printk(KERN_DEBUG, &dev->dev,
index b500840a143b08ac72e8c045fea66135535676d5..25916034c0ae8afad6a21a1b809e6228e983c611 100644 (file)
@@ -412,7 +412,7 @@ static void pcie_aspm_cap_init(struct pcie_link_state *link, int blacklist)
         * do ASPM for now.
         */
        list_for_each_entry(child, &linkbus->devices, bus_list) {
-               if (child->pcie_type == PCI_EXP_TYPE_PCI_BRIDGE) {
+               if (pci_pcie_type(child) == PCI_EXP_TYPE_PCI_BRIDGE) {
                        link->aspm_disable = ASPM_STATE_ALL;
                        break;
                }
@@ -425,8 +425,8 @@ static void pcie_aspm_cap_init(struct pcie_link_state *link, int blacklist)
                struct aspm_latency *acceptable =
                        &link->acceptable[PCI_FUNC(child->devfn)];
 
-               if (child->pcie_type != PCI_EXP_TYPE_ENDPOINT &&
-                   child->pcie_type != PCI_EXP_TYPE_LEG_END)
+               if (pci_pcie_type(child) != PCI_EXP_TYPE_ENDPOINT &&
+                   pci_pcie_type(child) != PCI_EXP_TYPE_LEG_END)
                        continue;
 
                pos = pci_pcie_cap(child);
@@ -552,7 +552,7 @@ static struct pcie_link_state *alloc_pcie_link_state(struct pci_dev *pdev)
        INIT_LIST_HEAD(&link->children);
        INIT_LIST_HEAD(&link->link);
        link->pdev = pdev;
-       if (pdev->pcie_type == PCI_EXP_TYPE_DOWNSTREAM) {
+       if (pci_pcie_type(pdev) == PCI_EXP_TYPE_DOWNSTREAM) {
                struct pcie_link_state *parent;
                parent = pdev->bus->parent->self->link_state;
                if (!parent) {
@@ -585,12 +585,12 @@ void pcie_aspm_init_link_state(struct pci_dev *pdev)
 
        if (!pci_is_pcie(pdev) || pdev->link_state)
                return;
-       if (pdev->pcie_type != PCI_EXP_TYPE_ROOT_PORT &&
-           pdev->pcie_type != PCI_EXP_TYPE_DOWNSTREAM)
+       if (pci_pcie_type(pdev) != PCI_EXP_TYPE_ROOT_PORT &&
+           pci_pcie_type(pdev) != PCI_EXP_TYPE_DOWNSTREAM)
                return;
 
        /* VIA has a strange chipset, root port is under a bridge */
-       if (pdev->pcie_type == PCI_EXP_TYPE_ROOT_PORT &&
+       if (pci_pcie_type(pdev) == PCI_EXP_TYPE_ROOT_PORT &&
            pdev->bus->self)
                return;
 
@@ -647,8 +647,8 @@ static void pcie_update_aspm_capable(struct pcie_link_state *root)
                if (link->root != root)
                        continue;
                list_for_each_entry(child, &linkbus->devices, bus_list) {
-                       if ((child->pcie_type != PCI_EXP_TYPE_ENDPOINT) &&
-                           (child->pcie_type != PCI_EXP_TYPE_LEG_END))
+                       if ((pci_pcie_type(child) != PCI_EXP_TYPE_ENDPOINT) &&
+                           (pci_pcie_type(child) != PCI_EXP_TYPE_LEG_END))
                                continue;
                        pcie_aspm_check_latency(child);
                }
@@ -663,8 +663,8 @@ void pcie_aspm_exit_link_state(struct pci_dev *pdev)
 
        if (!pci_is_pcie(pdev) || !parent || !parent->link_state)
                return;
-       if ((parent->pcie_type != PCI_EXP_TYPE_ROOT_PORT) &&
-           (parent->pcie_type != PCI_EXP_TYPE_DOWNSTREAM))
+       if ((pci_pcie_type(parent) != PCI_EXP_TYPE_ROOT_PORT) &&
+           (pci_pcie_type(parent) != PCI_EXP_TYPE_DOWNSTREAM))
                return;
 
        down_read(&pci_bus_sem);
@@ -704,8 +704,8 @@ void pcie_aspm_pm_state_change(struct pci_dev *pdev)
 
        if (aspm_disabled || !pci_is_pcie(pdev) || !link)
                return;
-       if ((pdev->pcie_type != PCI_EXP_TYPE_ROOT_PORT) &&
-           (pdev->pcie_type != PCI_EXP_TYPE_DOWNSTREAM))
+       if ((pci_pcie_type(pdev) != PCI_EXP_TYPE_ROOT_PORT) &&
+           (pci_pcie_type(pdev) != PCI_EXP_TYPE_DOWNSTREAM))
                return;
        /*
         * Devices changed PM state, we should recheck if latency
@@ -729,8 +729,8 @@ void pcie_aspm_powersave_config_link(struct pci_dev *pdev)
        if (aspm_policy != POLICY_POWERSAVE)
                return;
 
-       if ((pdev->pcie_type != PCI_EXP_TYPE_ROOT_PORT) &&
-           (pdev->pcie_type != PCI_EXP_TYPE_DOWNSTREAM))
+       if ((pci_pcie_type(pdev) != PCI_EXP_TYPE_ROOT_PORT) &&
+           (pci_pcie_type(pdev) != PCI_EXP_TYPE_DOWNSTREAM))
                return;
 
        down_read(&pci_bus_sem);
@@ -757,8 +757,8 @@ static void __pci_disable_link_state(struct pci_dev *pdev, int state, bool sem,
        if (!pci_is_pcie(pdev))
                return;
 
-       if (pdev->pcie_type == PCI_EXP_TYPE_ROOT_PORT ||
-           pdev->pcie_type == PCI_EXP_TYPE_DOWNSTREAM)
+       if (pci_pcie_type(pdev) == PCI_EXP_TYPE_ROOT_PORT ||
+           pci_pcie_type(pdev) == PCI_EXP_TYPE_DOWNSTREAM)
                parent = pdev;
        if (!parent || !parent->link_state)
                return;
@@ -933,8 +933,8 @@ void pcie_aspm_create_sysfs_dev_files(struct pci_dev *pdev)
        struct pcie_link_state *link_state = pdev->link_state;
 
        if (!pci_is_pcie(pdev) ||
-           (pdev->pcie_type != PCI_EXP_TYPE_ROOT_PORT &&
-            pdev->pcie_type != PCI_EXP_TYPE_DOWNSTREAM) || !link_state)
+           (pci_pcie_type(pdev) != PCI_EXP_TYPE_ROOT_PORT &&
+            pci_pcie_type(pdev) != PCI_EXP_TYPE_DOWNSTREAM) || !link_state)
                return;
 
        if (link_state->aspm_support)
@@ -950,8 +950,8 @@ void pcie_aspm_remove_sysfs_dev_files(struct pci_dev *pdev)
        struct pcie_link_state *link_state = pdev->link_state;
 
        if (!pci_is_pcie(pdev) ||
-           (pdev->pcie_type != PCI_EXP_TYPE_ROOT_PORT &&
-            pdev->pcie_type != PCI_EXP_TYPE_DOWNSTREAM) || !link_state)
+           (pci_pcie_type(pdev) != PCI_EXP_TYPE_ROOT_PORT &&
+            pci_pcie_type(pdev) != PCI_EXP_TYPE_DOWNSTREAM) || !link_state)
                return;
 
        if (link_state->aspm_support)
index 001f1b78f39ca22e0309e5b9a958fcdfa3c055f5..30897bf05b58913aa871b88101c5087ce45de6d4 100644 (file)
@@ -120,7 +120,7 @@ static bool pcie_pme_from_pci_bridge(struct pci_bus *bus, u8 devfn)
        if (!dev)
                return false;
 
-       if (pci_is_pcie(dev) && dev->pcie_type == PCI_EXP_TYPE_PCI_BRIDGE) {
+       if (pci_is_pcie(dev) && pci_pcie_type(dev) == PCI_EXP_TYPE_PCI_BRIDGE) {
                down_read(&pci_bus_sem);
                if (pcie_pme_walk_bus(bus))
                        found = true;
@@ -335,13 +335,13 @@ static void pcie_pme_mark_devices(struct pci_dev *port)
                struct pci_dev *dev;
 
                /* Check if this is a root port event collector. */
-               if (port->pcie_type != PCI_EXP_TYPE_RC_EC || !bus)
+               if (pci_pcie_type(port) != PCI_EXP_TYPE_RC_EC || !bus)
                        return;
 
                down_read(&pci_bus_sem);
                list_for_each_entry(dev, &bus->devices, bus_list)
                        if (pci_is_pcie(dev)
-                           && dev->pcie_type == PCI_EXP_TYPE_RC_END)
+                           && pci_pcie_type(dev) == PCI_EXP_TYPE_RC_END)
                                pcie_pme_set_native(dev, NULL);
                up_read(&pci_bus_sem);
        }
index 18bf90f748f6346753e92a8e47dca991966f02b4..67be55a7f260ffabfc0410bd5f4cde21b46d582c 100644 (file)
@@ -38,7 +38,7 @@ static int pcie_port_bus_match(struct device *dev, struct device_driver *drv)
                return 0;
 
        if ((driver->port_type != PCIE_ANY_PORT) &&
-           (driver->port_type != pciedev->port->pcie_type))
+           (driver->port_type != pci_pcie_type(pciedev->port)))
                return 0;
 
        return 1;
index 75915b30ad19db7438a935edbfad846127061843..bf320a9419f45df3d3734189d21206436c24e156 100644 (file)
@@ -298,7 +298,7 @@ static int get_port_device_capability(struct pci_dev *dev)
                services |= PCIE_PORT_SERVICE_VC;
        /* Root ports are capable of generating PME too */
        if ((cap_mask & PCIE_PORT_SERVICE_PME)
-           && dev->pcie_type == PCI_EXP_TYPE_ROOT_PORT) {
+           && pci_pcie_type(dev) == PCI_EXP_TYPE_ROOT_PORT) {
                services |= PCIE_PORT_SERVICE_PME;
                /*
                 * Disable PME interrupt on this port in case it's been enabled
@@ -336,7 +336,7 @@ static int pcie_device_init(struct pci_dev *pdev, int service, int irq)
        device->release = release_pcie_device;  /* callback to free pcie dev */
        dev_set_name(device, "%s:pcie%02x",
                     pci_name(pdev),
-                    get_descriptor_id(pdev->pcie_type, service));
+                    get_descriptor_id(pci_pcie_type(pdev), service));
        device->parent = &pdev->dev;
        device_enable_async_suspend(device);
 
index 3a7eefcb270a5dda9a2dcbcead63086da4433c3e..24d1463e688b5ff7798fd45722d5588d92d0fe77 100644 (file)
@@ -95,7 +95,7 @@ static int pcie_port_resume_noirq(struct device *dev)
         * which breaks ACPI-based runtime wakeup on PCI Express, so clear those
         * bits now just in case (shouldn't hurt).
         */
-       if(pdev->pcie_type == PCI_EXP_TYPE_ROOT_PORT)
+       if (pci_pcie_type(pdev) == PCI_EXP_TYPE_ROOT_PORT)
                pcie_clear_root_pme_status(pdev);
        return 0;
 }
@@ -186,9 +186,9 @@ static int __devinit pcie_portdrv_probe(struct pci_dev *dev,
        int status;
 
        if (!pci_is_pcie(dev) ||
-           ((dev->pcie_type != PCI_EXP_TYPE_ROOT_PORT) &&
-            (dev->pcie_type != PCI_EXP_TYPE_UPSTREAM) &&
-            (dev->pcie_type != PCI_EXP_TYPE_DOWNSTREAM)))
+           ((pci_pcie_type(dev) != PCI_EXP_TYPE_ROOT_PORT) &&
+            (pci_pcie_type(dev) != PCI_EXP_TYPE_UPSTREAM) &&
+            (pci_pcie_type(dev) != PCI_EXP_TYPE_DOWNSTREAM)))
                return -ENODEV;
 
        if (!dev->irq && dev->pin) {
index ba4d8550503c9f8ac17a6e35f2371ee64ec58ff3..1d52a43eb0867df9813bb0fe651bcfa75b754ff0 100644 (file)
@@ -1384,9 +1384,9 @@ static int only_one_child(struct pci_bus *bus)
 
        if (!parent || !pci_is_pcie(parent))
                return 0;
-       if (parent->pcie_type == PCI_EXP_TYPE_ROOT_PORT)
+       if (pci_pcie_type(parent) == PCI_EXP_TYPE_ROOT_PORT)
                return 1;
-       if (parent->pcie_type == PCI_EXP_TYPE_DOWNSTREAM &&
+       if (pci_pcie_type(parent) == PCI_EXP_TYPE_DOWNSTREAM &&
            !pci_has_flag(PCI_SCAN_ALL_PCIE_DEVS))
                return 1;
        return 0;
@@ -1463,7 +1463,7 @@ static int pcie_find_smpss(struct pci_dev *dev, void *data)
         */
        if (dev->is_hotplug_bridge && (!list_is_singular(&dev->bus->devices) ||
             (dev->bus->self &&
-             dev->bus->self->pcie_type != PCI_EXP_TYPE_ROOT_PORT)))
+             pci_pcie_type(dev->bus->self) != PCI_EXP_TYPE_ROOT_PORT)))
                *smpss = 0;
 
        if (*smpss > dev->pcie_mpss)
@@ -1479,7 +1479,8 @@ static void pcie_write_mps(struct pci_dev *dev, int mps)
        if (pcie_bus_config == PCIE_BUS_PERFORMANCE) {
                mps = 128 << dev->pcie_mpss;
 
-               if (dev->pcie_type != PCI_EXP_TYPE_ROOT_PORT && dev->bus->self)
+               if (pci_pcie_type(dev) != PCI_EXP_TYPE_ROOT_PORT &&
+                   dev->bus->self)
                        /* For "Performance", the assumption is made that
                         * downstream communication will never be larger than
                         * the MRRS.  So, the MPS only needs to be configured
index 993d4a0a24699661bc2adfef5125a6be07f50a64..621b162ceb694c8983616828f840be032e0deac2 100644 (file)
@@ -41,7 +41,7 @@ pci_find_upstream_pcie_bridge(struct pci_dev *pdev)
                        continue;
                }
                /* PCI device should connect to a PCIe bridge */
-               if (pdev->pcie_type != PCI_EXP_TYPE_PCI_BRIDGE) {
+               if (pci_pcie_type(pdev) != PCI_EXP_TYPE_PCI_BRIDGE) {
                        /* Busted hardware? */
                        WARN_ON_ONCE(1);
                        return NULL;