]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
PCI: Simplify pcie_bus_configure_settings() interface
authorBjorn Helgaas <bhelgaas@google.com>
Thu, 22 Aug 2013 03:24:44 +0000 (11:24 +0800)
committerBjorn Helgaas <bhelgaas@google.com>
Thu, 22 Aug 2013 16:47:02 +0000 (10:47 -0600)
Based on a patch by Jon Mason (see URL below).

All users of pcie_bus_configure_settings() pass arguments of the form
"bus, bus->self->pcie_mpss".  The "mpss" argument is redundant since we
can easily look it up internally.  In addition, all callers check
"bus->self" for NULL, which we can also do internally.

This patch simplifies the interface and the callers.  No functional change.

Reference: http://lkml.kernel.org/r/1317048850-30728-2-git-send-email-mason@myri.com
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
arch/powerpc/kernel/pci-common.c
arch/tile/kernel/pci_gx.c
arch/x86/pci/acpi.c
drivers/pci/hotplug/pcihp_slot.c
drivers/pci/probe.c
include/linux/pci.h

index f46914a0f33ea6fd3cacbdddb76288722dfb42cb..d35ec34de1b49c6d94e693aa0ea4286338332da8 100644 (file)
@@ -1672,12 +1672,8 @@ void pcibios_scan_phb(struct pci_controller *hose)
        /* Configure PCI Express settings */
        if (bus && !pci_has_flag(PCI_PROBE_ONLY)) {
                struct pci_bus *child;
-               list_for_each_entry(child, &bus->children, node) {
-                       struct pci_dev *self = child->self;
-                       if (!self)
-                               continue;
-                       pcie_bus_configure_settings(child, self->pcie_mpss);
-               }
+               list_for_each_entry(child, &bus->children, node)
+                       pcie_bus_configure_settings(child);
        }
 }
 
index 11425633b2d7a03e2b04cadf144fbde7efe585cf..6640e7bbeaa286499d112f8efe35ab383249c5d0 100644 (file)
@@ -508,13 +508,8 @@ static void fixup_read_and_payload_sizes(struct pci_controller *controller)
                                                rc_dev_cap.word);
 
        /* Configure PCI Express MPS setting. */
-       list_for_each_entry(child, &root_bus->children, node) {
-               struct pci_dev *self = child->self;
-               if (!self)
-                       continue;
-
-               pcie_bus_configure_settings(child, self->pcie_mpss);
-       }
+       list_for_each_entry(child, &root_bus->children, node)
+               pcie_bus_configure_settings(child);
 
        /*
         * Set the mac_config register in trio based on the MPS/MRS of the link.
index d641897a1f4e5d53a5f14ec3e25b7517fe3d8b9f..b30e937689d617cee4b37775f70bc8e001af0441 100644 (file)
@@ -568,13 +568,8 @@ struct pci_bus *pci_acpi_scan_root(struct acpi_pci_root *root)
         */
        if (bus) {
                struct pci_bus *child;
-               list_for_each_entry(child, &bus->children, node) {
-                       struct pci_dev *self = child->self;
-                       if (!self)
-                               continue;
-
-                       pcie_bus_configure_settings(child, self->pcie_mpss);
-               }
+               list_for_each_entry(child, &bus->children, node)
+                       pcie_bus_configure_settings(child);
        }
 
        if (bus && node != -1) {
index fec2d5b754401ddd63d402c49b0a11c039f325ff..16f9203523179c46e99505443675c964f16f4b1a 100644 (file)
@@ -160,9 +160,8 @@ void pci_configure_slot(struct pci_dev *dev)
                        (dev->class >> 8) == PCI_CLASS_BRIDGE_PCI)))
                return;
 
-       if (dev->bus && dev->bus->self)
-               pcie_bus_configure_settings(dev->bus,
-                                           dev->bus->self->pcie_mpss);
+       if (dev->bus)
+               pcie_bus_configure_settings(dev->bus);
 
        memset(&hpp, 0, sizeof(hpp));
        ret = pci_get_hp_params(dev, &hpp);
index 9a334301a8f453c4b766f024174d254ee373ab92..ecae7f2906470af3096cb4b578df9b87160b9dbe 100644 (file)
@@ -1607,10 +1607,13 @@ static int pcie_bus_configure_set(struct pci_dev *dev, void *data)
  * parents then children fashion.  If this changes, then this code will not
  * work as designed.
  */
-void pcie_bus_configure_settings(struct pci_bus *bus, u8 mpss)
+void pcie_bus_configure_settings(struct pci_bus *bus)
 {
        u8 smpss;
 
+       if (!bus->self)
+               return;
+
        if (!pci_is_pcie(bus->self))
                return;
 
@@ -1625,7 +1628,7 @@ void pcie_bus_configure_settings(struct pci_bus *bus, u8 mpss)
                smpss = 0;
 
        if (pcie_bus_config == PCIE_BUS_SAFE) {
-               smpss = mpss;
+               smpss = bus->self->pcie_mpss;
 
                pcie_find_smpss(bus->self, &smpss);
                pci_walk_bus(bus, pcie_find_smpss, &smpss);
index 0fd1f1582fa1cdf359b33f3cddeaa60026f492ac..57062b7a20ba3abad9ab6161796af5b23d065018 100644 (file)
@@ -675,7 +675,7 @@ struct pci_driver {
 /* these external functions are only available when PCI support is enabled */
 #ifdef CONFIG_PCI
 
-void pcie_bus_configure_settings(struct pci_bus *bus, u8 smpss);
+void pcie_bus_configure_settings(struct pci_bus *bus);
 
 enum pcie_bus_config_types {
        PCIE_BUS_TUNE_OFF,